一、实现效果
二、交互流程
用户在群里@钉钉机器人,开发者服务器处理后,将@消息推送到群中的流程涉及到三个角色:钉钉客户端、钉钉服务器、开发者服务器
三者交互时序图如下:
注意,当前机器人尚不支持应答机制 (该机制指的是群里成员在聊天@机器人的时候,钉钉回调指定的开发者服务地址,并不会将开发者服务地址响应的结果发送到群中),需要开发者服务单独将消息发送到钉钉服务器的webhook地址。
三、如何创建自定义机器人
创建流程:群设置——》智能群助手——》添加机器人——》自定义——》配置机器人(加签、post回调地址和token)——》保存access_token——》完成!
图示:
这一步比较重要加签、开启Outgoing机制、填写POST回调地址和Token
- 加签很重要,要记到小本本上!加签用于开发者服务器访问钉钉服务器时校验。另外还可以通过
关键字
、IP地址(段)
等安全设置进行校验。 - 开启Outgoing机制用于用户@钉钉客户端的机器人时,回调开发者服务器接口使用,回调时会携带token
本地测试时回调地址时,可以使用内网穿透等工具将内网服务接口暴露到外网。(我使用的是Ngrok)
这里access_token很重要,要记到小本本上。access_token用于开发者服务回调webhook(钉钉服务器)时,指定发送消息的机器人
至此钉钉Outgoing机器人创建完成。
四、开发者服务器
1. 服务器端重点
如何接收用户@机器人的信息和启用Outgoing时的token?
用户@的信息在http body里面,token在http header里面
如何发送@用户消息?
发送的消息中携带“@手机号”即可。手机号可以通过用户名称从钉钉接口获取,或者从你们公司内部的hr系统接口获取。