import ( "github.com/xen0n/go-workwx" // package workwx )
A Work Weixin (a.k.a. Wechat Work) client SDK for Golang, that happens to be battle-tested and pretty serious about its types.
In production since late 2018, pushing all kinds of notifications and alerts in at least 2 of Qiniu's internal systems.
一个 Golang 企业微信客户端 SDK;碰巧在生产环境试炼过,还对类型很严肃。
自 2018 年末以来,在七牛至少 2 个内部系统运转至今,推送各种通知、告警。
English translation TODO for now, as the service covered here is not available outside of China (AFAIK).
工作中需要用 Go 实现一个简单的消息推送,想着找个开源库算了,然而现有唯一的开源企业微信 Golang SDK 代码质量不佳。只好自己写一个。
Update: 自从这个库写出来,已经过了很久;现在(2019.08)已经有三四个同类项目了。
不过看了看这些“竞品”,发现自己这个库的类型设计、公开接口、access token 处理等方面还不赖。
为什么人们总是喜欢写死请求 Host
、用全局量、为拆包而拆包甚至不惜公开内部方法呢?
本库的 v1.x 分支最低支持到 go1.17
。
CI 会在 go1.17
和 Go 的当前稳定版本、上一个稳定版本上跑测试,只有测试全部通过才可能合并 PR。
Host
,用于自己拦一层网关、临时调试等等奇葩需求http.Client
WorkwxApp
对象,然后直接用lowlevel
包暴露裸的 API 接口,但很可能不做UserInfo
、Recipient
),以鼓励 idiomatic Go 风格panic
。现存的少数一些情况都是要修掉的。workwxctl
命令行小工具帮助调试
详情看 godoc 文档,还提供 Examples 小段代码可以参考。