이 프로젝트에는 여러분의 도움이 필요합니다!
import (
"github.com/xen0n/go-workwx/v2" // package workwx
)
Golang용 Work Weixin(일명 Wechat Work) 클라이언트 SDK는 전투 테스트를 거쳤으며 해당 유형에 대해 매우 진지합니다.
2018년 말부터 생산 중이며 Qiniu의 내부 시스템 중 최소 2개에 모든 종류의 알림 및 경고를 푸시합니다.
Golang 기업 WeChat 클라이언트 SDK. 저는 우연히 프로덕션 환경에서 사용해 보았고 유형에 대해 매우 진지하게 생각합니다.
2018년 말부터 현재까지 Qiniu의 내부 시스템 중 최소 2개 이상이 실행되어 다양한 알림과 경보를 푸시하고 있습니다.
여기에서 다루는 서비스는 중국(AFAIK) 외부에서는 사용할 수 없으므로 현재 영어 번역 TODO입니다.
경고
이 라이브러리의 v2 버전에는 필드 이름, 메서드 이름 조정 등 호환되지 않는 API 변경 사항이 여전히 있을 수 있습니다. 참고하세요. 알려진 모든 모서리를 처리할 때까지 태그의 v2 버전은 없습니다.
이 라이브러리에 의존하고 계시다면 v2 버전 추적 티켓에 회신하시거나 이모티콘 반응을 통해 여러분의 태도를 보여주세요! 작성자는 이제 여가 시간에 이 프로젝트를 전적으로 유지 관리하므로 여러분의 피드백이 절실히 필요합니다.
직장에서 간단한 메시지 푸시를 구현하려면 Go를 사용해야 하고, 오픈소스 라이브러리를 찾아볼까 고민도 했는데요, 기존에 유일하게 존재하는 오픈소스 기업인 WeChat Golang SDK의 코드 품질이 형편없습니다. 나는 하나를 직접 작성해야했습니다.
업데이트 : 이 라이브러리가 작성된 지 오래되었습니다. 현재(2019.08) 유사한 프로젝트가 3~4개 있습니다. 그러나 이러한 "경쟁 제품"을 살펴본 후 내 라이브러리의 유형 디자인, 공용 인터페이스, 액세스 토큰 처리 등이 나쁘지 않다는 것을 알았습니다. 왜 사람들은 항상 Host
요청을 하드 코딩하고, 전역 변수를 사용하고, 압축 풀기를 위해 압축을 풀고, 심지어 내부 메소드를 노출하는 것을 좋아합니까?
이 라이브러리의 v2.x 브랜치는 적어도 현재 go1.19인 Go의 마지막 안정 버전을 지원합니다. 이전 버전의 Go와 함께 사용해야 하는 경우 v1.x 버전으로 이동하세요. 해당 코드는 여전히 go1.17 이상을 지원합니다.
CI는 현재 안정 버전의 Go와 이전 안정 버전에서 테스트를 실행합니다. 모든 테스트를 통과한 경우에만 PR이 병합될 수 있습니다.
참고: Go upstream이 계속 발전함에 따라 상대적으로 저렴하게 따라잡을 수 있어야 합니다. go.mod
Go 버전이 상대적으로 낮아서 프로젝트 자체의 기능적 반복이나 재구성을 방해한다고 지정하는 경우, 우리는 매우 필요한 업그레이드 속도를 늦추기 위해 Go 버전의 다운스트림 사용자를 잠그는 것을 특별히 고려하지 않을 것입니다. 여전히 그러한 요구사항이 있는 경우 의사소통 문제를 제출해 주세요.
Host
범위를 지원합니다.http.Client
사용한 지원WorkwxApp
개체를 두 단계로 구성한 후 직접 사용합니다.lowlevel
패키지가 만들어질 수도 있지만 그렇게 되지는 않을 것 같습니다.UserInfo
, Recipient
).panic
. 몇 가지 기존 상황을 복구해야 합니다.workwxctl
명령줄 가젯과 함께 제공자세한 내용은 godoc 문서를 참조하세요.
마크다운 및 기타 유형의 메시지는 현재 기밀 메시지 전송을 지원하지 않으며, 강제로 전송하면 오류가 보고됩니다. 그렇다면 메시지를 보내는 모든 방법에 isSafe
매개변수가 포함되는 이유는 무엇일까요?
한편으로, 기업 WeChat 서비스 제공자는 앞으로 더 많은 메시지 유형의 기밀 전송을 지원할 가능성이 높으며, 다른 한편으로는 클라이언트 코드가 다시 컴파일되는 것을 원하지 않습니다. 어쨌든 오류가 발생하므로 이 논리를 유지하지 않을 것입니다. 따라서 변경되지 않습니다.