简介
企业微信基于SDK wxwork 实现。
因为市面上真找不到代码比较清晰的SDK,所以就自己写了一个,精力有限,只实现了部分功能,以后可能会继续开发,已经实现的功能见上面的链接,文档见godoc
请确保你已经了解企业微信相关操作!企业微信帮助中心 https://work.weixin.qq.com/help
确保你的web服务可以被外网访问!
开启API接收消息
企业微信转接器提供了消息接收的api,URI为:wework
。
比如你的部署地址为 https://baidu.com:7856
,对应消息接收地址为 https://baidu.com:7856/wework
配置好 Token
和 EncodingAESKey
。
此api提供了url验证功能,将下面的配置填写完整,运行机器人服务才可进行验证。
配置企业微信机器人
将企业ID
,自建应用的AgentId
和Secret
,消息服务器的Token
和 EncodingAESKey
填入对应配置中:
# 聊天转接器
ROBOT_ADAPTER=wework
# 企业微信 企业ID
WORKWX_CORP_ID=xxxxxxxxx
# 企业微信自建应用agentid
WORKWX_AGENT_ID=xxxxxxxxxxxx
# 企业微信自建应用secret
WORKWX_SECRET=xxxxxxxx
# 企业微信自建应用API接收消息token
WORKWX_RECV_TOKEN=xxxxxxxxxx
# 企业微信自建应用API接收消息EncodingAESKey
WORKWX_RECV_AES_KEY=xxxxxxxxxx
传入消息(Incoming)
当企业微信将消息或事件推送给转接器时,转接器会做以下操作:
- 记录发送者
- 记录应用ID
AgentId
- 记录原始数据
Data
,原始数据为SDK的wxwork.RecvMessage
类型,使用gob
进行序列化,脚本可以反序列化后获取原始记录,并做相关处理。
其中发送者记录在消息体中,其他记录在消息体的Header
中,最后转接器将消息存入 incoming
通道中,等待机器人获取消息。
传出消息(Outgoing)
消息通过脚本解析执行后会将处理结果发送给用户,脚本可以发送转接器支持的消息类型到客户端。
企业微信支持七种消息类型:
-
text
文本消息 -
markdown
markdown消息 -
image
图片消息 -
voice
语音消息 -
video
视频消息 -
file
文件消息 -
textcard
文本卡片消息
消息类型请查看企业微信开发文档 发送应用消息
需要在Header
中设置消息类型msgtype
在不指定时默认为markdown
类型消息
同步联系人信息
该转接器同样也提供了同步联系人功能,需要 通讯录同步
权限。获取此权限需要设置 WORKWX_CONTACT_SECRET
的值为 通讯录同步
的 Secret