wechat-work-go
wechat-work-go copied to clipboard
企业微信 go SDK
wechat-work-go
import (
wechatwork "github.com/dfang/wechat-work-go" // package wechatwork
)
Features
通讯录管理 API
-
[✓] 成员管理
- [✓] 创建成员 (只能使用通讯录secret创建)
- [✓] 读取成员
- [✓] 更新成员
- [✓] 删除成员
- [✓] 批量删除成员
- [✓] 获取部门成员
- [✓] 获取部门成员详情
- [✓] userid与openid互换
- [✓] 二次验证
- [✓] 邀请成员
-
[✓] 部门管理
- [✓] 创建部门
- [✓] 更新部门
- [✓] 删除部门
- [✓] 获取部门列表
-
[ ] 标签管理
- [ ] 创建标签
- [ ] 更新标签名字
- [ ] 删除标签
- [ ] 获取标签成员
- [ ] 增加标签成员
- [ ] 删除标签成员
- [ ] 获取标签列表
-
[ ] 异步批量接口
- [ ] 增量更新成员
- [ ] 全量覆盖成员
- [ ] 全量覆盖部门
- [ ] 获取异步任务结果
-
[ ] 通讯录回调通知
身份认证
- [✓] 网页授权登录时获取访问用户身份
- [✓] 扫码授权登录时获取访问用户身份
应用管理
- [✓] 获取应用
- [✓] 设置应用
- [✓] 自定义菜单
- [✓] 创建菜单
- [✓] 获取菜单
- [✓] 删除菜单
消息推送
素材管理
- [ ] 素材管理
- [ ] 上传临时素材
- [ ] 上传永久图片
- [ ] 获取临时素材
- [ ] 获取高清语音素材
TODO(以下接口个人暂时用不到, 暂时不开发)
- [ ] 外部联系人管理
- [ ] OA 数据接口
- [ ] 企业支付
- [ ] 电子发票
使用
企业微信是分应用的, 一个企业(一个corpid)中有多个app (对应的一套corpsecret,agentid)
所以使用的时候先创建一个企业的client,然后用这个client创建不同的app对象
import (
wechatwork "github.com/dfang/wechat-work-go" // package wechatwork
)
corpID := os.Getenv("CORP_ID")
corpSecret := os.Getenv("CORP_SECRET")
agentID, _ := strconv.ParseInt(os.Getenv("AGENT_ID"), 10, 64)
corp := wechatwork.New(corpID)
app = corp.NewApp(corpSecret, agentID)
要使用哪个模块的功能,就创建哪个模块的实例
import "github.com/dfang/wechat-work-go/message"
msg := message.WithApp(app)
msg.SendAppChatMessage(....)
开发
对照API文档, 运行测试, 快速了解API
export CORP_ID=xxxxxx
export CORP_SECRET=yyyyyy
export AGENT_ID=zzzzzz
运行单个测试,比如只运行access_token_test.go的测试
ginkgo -v -focus='access_token'
或者
go test -v wechat_work_go_suite_test.go client_test.go
watch mode
ginkgo watch -v -focus='access_token*'