Dieses Projekt braucht Ihre Hilfe!
import (
"github.com/xen0n/go-workwx/v2" // package workwx
)
Ein Work Weixin (auch bekannt als Wechat Work) Client-SDK für Golang, das kampferprobt ist und seine Typen ziemlich ernst nimmt.
Seit Ende 2018 in Produktion und überträgt alle Arten von Benachrichtigungen und Warnungen in mindestens zwei der internen Systeme von Qinius.
Ein WeChat-Client-SDK für Unternehmen von Golang. Ich habe es zufällig in einer Produktionsumgebung ausprobiert und nehme die Typen sehr ernst.
Seit Ende 2018 laufen bis heute mindestens zwei interne Systeme in Qiniu, die verschiedene Benachrichtigungen und Alarme pushen.
Englische Übersetzung TODO vorerst, da der hier abgedeckte Service außerhalb Chinas (AFAIK) nicht verfügbar ist.
Warnung
Die v2-Version dieser Bibliothek weist möglicherweise noch inkompatible API-Änderungen auf, wie z. B. Anpassungen von Feldnamen, Methodennamen usw. Bitte beachten Sie. Es wird keine v2-Version des Tags geben, bis wir uns um alle bekannten Ecken gekümmert haben.
Wenn Sie sich auf diese Bibliothek verlassen, antworten Sie bitte auf das v2-Versionsverfolgungsticket oder reagieren Sie mit einem Emoticon, um Ihre Einstellung zu zeigen! Der Autor pflegt dieses Projekt nun vollständig in seiner Freizeit und braucht dringend Ihr Feedback.
Ich muss Go verwenden, um bei der Arbeit einen einfachen Nachrichten-Push zu implementieren, und habe darüber nachgedacht, eine Open-Source-Bibliothek zu finden. Allerdings ist die Codequalität des einzigen existierenden Open-Source-Enterprise-WeChat-Golang-SDK schlecht. Ich musste selbst eines schreiben.
Update : Es ist lange her, dass diese Bibliothek geschrieben wurde. Jetzt (2019.08) gibt es drei oder vier ähnliche Projekte. Nachdem ich mir jedoch diese „Konkurrenzprodukte“ angesehen hatte, stellte ich fest, dass das Schriftdesign, die öffentliche Schnittstelle, die Zugriffstokenverarbeitung usw. meiner Bibliothek nicht schlecht sind. Warum codieren die Leute Host
Anfragen immer gerne hart, verwenden globale Variablen, entpacken um des Entpackens willen und legen sogar interne Methoden offen?
Der v2.x-Zweig dieser Bibliothek unterstützt mindestens die letzte stabile Version von Go, derzeit go1.19. Wenn Sie es mit einer früheren Version von Go verwenden müssen, wechseln Sie bitte zur Version v1.x. Der Code dort unterstützt immer noch mindestens go1.17.
CI führt Tests für die aktuelle stabile Version von Go und die vorherige stabile Version durch. Erst wenn alle Tests erfolgreich sind, kann die PR zusammengeführt werden.
Hinweis: Da sich Go Upstream weiterentwickelt, müssen wir sicherstellen können, dass wir relativ kostengünstig aufholen können. Wenn go.mod
angibt, dass die Go-Version relativ niedrig ist, was die funktionale Iteration oder Rekonstruktion des Projekts behindert, werden wir nicht ausdrücklich in Betracht ziehen, nachgeschaltete Benutzer der Go-Version zu sperren, um dringend notwendige Upgrades zu verlangsamen. Wenn Sie weiterhin solche Anforderungen haben, reichen Sie bitte ein Problem zur Kommunikation ein.
Host
, das zum Blockieren einer Gateway-Ebene, zum vorübergehenden Debuggen und für andere seltsame Anforderungen verwendet werden kann.http.Client
WorkwxApp
Objekt wird in zwei Schritten erstellt und dann direkt verwendetlowlevel
-Paket erstellt werden, um die nackte API-Schnittstelle offenzulegen, aber das wird wahrscheinlich nicht geschehen.UserInfo
, Recipient
), um den idiomatischen Go-Stil zu fördernpanic
. Die wenigen bestehenden Situationen müssen repariert werden.workwxctl
Befehlszeilen-Gadget geliefert, das das Debuggen erleichtertWeitere Informationen finden Sie im Godoc-Dokument. Beispiele werden ebenfalls als Referenz bereitgestellt.
Markdown- und andere Arten von Nachrichten unterstützen derzeit nicht das Senden als vertrauliche Nachrichten und es wird ein Fehler gemeldet, wenn das Senden erzwungen wird. Warum tragen also alle Methoden zum Senden von Nachrichten den isSafe
-Parameter?
Einerseits wird der WeChat-Dienstanbieter des Unternehmens in Zukunft durchaus das vertrauliche Senden weiterer Nachrichtentypen unterstützen und möchte nicht, dass der Client-Code zu diesem Zeitpunkt neu kompiliert wird Fehler sowieso, und Sie werden diese Logik nicht beibehalten. Daher wird es nicht geändert.