https://github.com/dfang/wechat-work-go
企业微信 go SDK
https://github.com/dfang/wechat-work-go
go sdk wechat wechat-work wechat-work-go
Last synced: 4 months ago
JSON representation
企业微信 go SDK
- Host: GitHub
- URL: https://github.com/dfang/wechat-work-go
- Owner: dfang
- License: other
- Created: 2019-04-18T10:21:23.000Z (about 7 years ago)
- Default Branch: refactor
- Last Pushed: 2020-05-20T01:55:26.000Z (about 6 years ago)
- Last Synced: 2025-08-13T19:06:52.711Z (10 months ago)
- Topics: go, sdk, wechat, wechat-work, wechat-work-go
- Language: Go
- Homepage:
- Size: 184 KB
- Stars: 44
- Watchers: 1
- Forks: 15
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# wechat-work-go
[](https://goreportcard.com/report/github.com/dfang/wechat-work-go)
[](http://godoc.org/github.com/dfang/wechat-work-go)
[](https://travis-ci.com/dfang/wechat-work-go)
[](https://codeclimate.com/github/dfang/wechat-work-go/maintainability)
[](https://codeclimate.com/github/dfang/wechat-work-go/test_coverage)
[](https://buildkite.com/curry/wechat-work-go)
```go
import (
wechatwork "github.com/dfang/wechat-work-go" // package wechatwork
)
```
## Features
通讯录管理 API
* [✓] [成员管理](https://work.weixin.qq.com/api/doc#90000/90135/90194)
- [✓] 创建成员 (只能使用通讯录secret创建)
- [✓] 读取成员
- [✓] 更新成员
- [✓] 删除成员
- [✓] 批量删除成员
- [✓] 获取部门成员
- [✓] 获取部门成员详情
- [✓] userid与openid互换
- [✓] 二次验证
- [✓] 邀请成员
* [✓] [部门管理](https://work.weixin.qq.com/api/doc#90000/90135/90204)
- [✓] 创建部门
- [✓] 更新部门
- [✓] 删除部门
- [✓] 获取部门列表
* [ ] [标签管理](https://work.weixin.qq.com/api/doc#90000/90135/90209)
- [ ] 创建标签
- [ ] 更新标签名字
- [ ] 删除标签
- [ ] 获取标签成员
- [ ] 增加标签成员
- [ ] 删除标签成员
- [ ] 获取标签列表
* [ ] [异步批量接口](https://work.weixin.qq.com/api/doc#90000/90135/90978)
- [ ] 增量更新成员
- [ ] 全量覆盖成员
- [ ] 全量覆盖部门
- [ ] 获取异步任务结果
* [ ] [通讯录回调通知](https://work.weixin.qq.com/api/doc#90000/90135/90966)
身份认证
* [✓] [网页授权登录时获取访问用户身份](https://work.weixin.qq.com/api/doc#90000/90135/91023)
* [✓] [扫码授权登录时获取访问用户身份](https://work.weixin.qq.com/api/doc#90000/90135/91437)
应用管理
* [✓] 获取应用
* [✓] 设置应用
* [✓] [自定义菜单](https://work.weixin.qq.com/api/doc#90000/90135/90230)
- [✓] 创建菜单
- [✓] 获取菜单
- [✓] 删除菜单
消息推送
* [✓] [推送消息到应用](https://work.weixin.qq.com/api/doc#90000/90135/90236)
* [✓] 发送消息到群聊会话
- [✓] 创建群聊会话
- [✓] 修改群聊会话
- [✓] 获取群聊会话
- [✓] [推送消息到群聊会话](https://work.weixin.qq.com/api/doc#90000/90135/90248)
* [ ] 互联企业消息推送
- [ ] 发送应用消息
素材管理
* [ ] 素材管理
- [ ] 上传临时素材
- [ ] 上传永久图片
- [ ] 获取临时素材
- [ ] 获取高清语音素材
TODO(以下接口个人暂时用不到, 暂时不开发)
* [ ] 外部联系人管理
* [ ] OA 数据接口
* [ ] 企业支付
* [ ] 电子发票
## 使用
企业微信是分应用的, 一个企业(一个corpid)中有多个app (对应的一套corpsecret,agentid)
所以使用的时候先创建一个企业的client,然后用这个client创建不同的app对象
```go
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*'
```