Ce projet a besoin de votre aide !
import (
"github.com/xen0n/go-workwx/v2" // package workwx
)
Un SDK client Work Weixin (alias Wechat Work) pour Golang, qui s'avère être testé au combat et assez sérieux quant à ses types.
En production depuis fin 2018, diffusant toutes sortes de notifications et d'alertes dans au moins 2 des systèmes internes de Qiniu.
Un SDK client WeChat d'entreprise Golang ; je l'ai essayé dans un environnement de production et je suis très sérieux au sujet des types.
Depuis fin 2018, au moins deux systèmes internes de Qiniu fonctionnent jusqu'à ce jour, envoyant diverses notifications et alarmes.
Traduction en anglais TODO pour l'instant, car le service couvert ici n'est pas disponible en dehors de la Chine (AFAIK).
Avertissement
La version v2 de cette bibliothèque peut encore contenir des modifications d'API incompatibles, telles que des ajustements des noms de champs, des noms de méthodes, etc. Veuillez noter. Il n'y aura pas de version v2 du tag tant que nous n'aurons pas pris soin de tous les coins connus.
Si vous comptez sur cette bibliothèque, veuillez répondre au ticket de suivi de la version v2 ou faire une réaction d'émoticône pour montrer votre attitude ! L'auteur entretient désormais ce projet entièrement pendant son temps libre et a vraiment besoin de vos commentaires.
J'ai besoin d'utiliser Go pour implémenter un simple message push au travail, et j'ai pensé à trouver une bibliothèque open source. Cependant, la qualité du code du seul SDK WeChat Golang d'entreprise open source existant est médiocre. J'ai dû en écrire un moi-même.
Mise à jour : Cela fait longtemps que cette bibliothèque n'a pas été écrite ; maintenant (2019.08), il existe trois ou quatre projets similaires. Cependant, après avoir examiné ces "produits concurrents", j'ai trouvé que la conception des caractères, l'interface publique, le traitement des jetons d'accès, etc. de ma bibliothèque n'étaient pas mauvais. Pourquoi les gens aiment-ils toujours coder en dur les requêtes Host
, utiliser des variables globales, décompresser pour le plaisir de décompresser et même exposer des méthodes internes ?
La branche v2.x de cette bibliothèque prend en charge au moins la dernière version stable de Go, qui est actuellement go1.19. Si vous devez l'utiliser avec une version antérieure de Go, veuillez passer à la version v1.x. Le code prend toujours en charge au moins go1.17.
CI exécutera des tests sur la version stable actuelle de Go et la version stable précédente. Ce n'est que lorsque tous les tests réussiront que le PR pourra être fusionné.
Remarque : à mesure que Go amont continue d'évoluer, nous devons être en mesure de nous assurer que nous pouvons rattraper notre retard à un coût relativement bas. Si go.mod
précise que la version Go est relativement basse, ce qui gênera l'itération fonctionnelle ou la reconstruction du projet, nous n'envisagerons pas spécifiquement de verrouiller les utilisateurs en aval de la version Go pour ralentir les mises à niveau très nécessaires. Si vous avez toujours de tels besoins, veuillez déposer un problème de communication.
Host
, qui peut être utilisée pour bloquer une couche de passerelles, le débogage temporaire et d'autres besoins étranges.http.Client
personnaliséWorkwxApp
est construit en deux étapes, puis utilisé directementlowlevel
pourrait être créé pour exposer l’interface API nue, mais cela ne sera probablement pas fait.UserInfo
, Recipient
) pour encourager le style Go idiomatiquepanic
au moindre désaccord. Les quelques situations existantes doivent être réparées.workwxctl
pour faciliter le débogagePour plus de détails, consultez le document godoc. Des exemples sont également fournis à titre de référence.
Markdown et d'autres types de messages ne prennent actuellement pas en charge l'envoi en tant que messages confidentiels, et une erreur sera signalée si l'envoi est forcé. Alors pourquoi toutes les méthodes d’envoi de messages comportent-elles le paramètre isSafe
?
D'une part, le fournisseur de services WeChat d'entreprise est tout à fait susceptible de prendre en charge l'envoi confidentiel de davantage de types de messages à l'avenir et ne souhaite pas que le code client soit recompilé à ce moment-là, d'autre part, la réponse signalera un message ; erreur de toute façon, et vous ne garderez pas cette logique. Il ne sera donc pas modifié.