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