摘要:目前钉钉机器人支持方式,仍属于内侧阶段。方式是指被动接受通知,钉钉群中添加的群机器人默认都是该模式。截止撰写文章时,钉钉的机器人文档不可访问,所以会在下面介绍下。本文同步发表于作者博客从零开始打造专属钉钉机器人
官方定义如下:
群机器人是钉钉群的高级扩展功能。群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。目前,大部分机器人在添加后,还需要进行Webhook配置,才可正常使用(配置说明详见操作流程中的帮助链接)。例如:
通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步。
通过聚合Trello,JIRA等项目协调服务,实现项目信息同步。
另外,群机器人支持Webhook协议的自定义接入,支持更多可能性,例如:你可将运维 报警通过自定义机器人聚合到钉钉群实现提醒功能。
实际上,通过机器人我们可以对接各类服务,比如源码提交通知,服务器告警通知,甚至是可以主动查询天气、加班点餐等服务。
目前钉钉机器人支持incoming方式,outgoing仍属于内侧阶段。官方文档可以点此查看。
incoming方式incoming是指被动接受通知,钉钉群中添加的群机器人默认都是该模式。
添加机器人我们添加的时候可以看到已经自带一些常见的机器人,比较推荐的是GitHub、GitLab、JIRA、Travis、Trello,当然我们这次需要选择最后的"自定义"机器人。
在机器人信息栏填写"机器人姓名"即可,需要的话也可以设置一个头像。图中"是否开启Outgoing机制"在没有开通的情况下是不可见。
点击完成就会生成hook地址,如下图:
我们会用到"Hook地址",后面我们发送消息都需要请求到该地址。
如何发送消息只要想Webhook地址发起POST请求,带上特定格式消息即可。
具体的接口文档可以看官方,这里不做扩展。
开源工具在一些简单的通知场景,我们可以使用npm上面的轮子来快速实现。
dingtalk-robot
dingtalk-robot-sender
outgoing方式outgoing机器人的配置和前面基本一样,只需要额外配置POST 地址以及Token。
需要注意的是Token保存后无法再次修改,POST 地址就是钉钉机器人接受消息后调用的地址。
开通方式钉钉上加入"钉钉机器人交流群",群号:11733391
在 https://open-dev.dingtalk.com 首页上找到corpId
记得添加"大柚",并把coprId私发给他。
目前每周四提交开通,预计周五会生效。如何收取消息
当群里有人@机器人时,钉钉会通过POST方式回调我们前面设置的地址,该地址实质是接口,可以在Body中获取到消息内容。
截止撰写文章时,钉钉的outgoing机器人文档不可访问,所以会在下面介绍下。
钉钉请求格式HTTP Header 格式如下:
"Content-Type": "application/json; charset=utf-8" "token": "6a71a455ffcfba92a66"
HTTP Body 文本消息内容:
{ // 会话id "conversationId": "8Yu7H8H8890kkl7h==", "atUsers": [ { "dingtalkId": "$:DFDS51:$R7E8dffdufdfjsdf2/oUCO/" } ], "chatbotUserId": "$:df3234:$sdfsdfsdfsdfd234234/oUCO/", "msgId": "msg4sdf35jh8jc9b51ss6/noYdzw==", "senderNick": "Neo", "isAdmin": false, "sessionWebhookExpiredTime": 1561711409165, // 消息发送的时间 "createAt": 1561710209132, // 群聊消息类型还是单聊 "conversationType": "2", "senderId": "$:ASDD_v1:$df8sdfj&JS*J#FF==", // 当类型是群聊时,这个参数有效 "conversationTitle": "avalon", "isInAtList": true, // sessionWebhook是临时的发送消息接口 "sessionWebhook": "https://oapi.dingtalk.com/robot/sendBySession?session=qwe", // 消息内容 "text": { "content": "我就是我, 是不一样的烟火" }, // 消息类型 "msgtype": "text", }
HTTP 响应格式
支持返回文本、图片和markdown,actionCard,feedCard消息类型。
下面仅列出markdown格式的消息,详细的文件可以参考网友提供的PDF,提取码: 4qht 。
{ "msgtype": "markdown", // 消息类型 "markdown": { "title":"杭州天气", // 消息主题 "text": "#### 杭州天气 @ptt6gbq @17681800905 " + "> 9度,西北风1级,空气良89,相对温度73% " + "> ![screenshot](http://image.jpg) " + "> ###### 10点20分发布 [天气](http://www.thinkpage.cn/) " // 消息体 }, "at": { // @的人员 "atMobiles": [ "17681800905" ], "atDingtalkIds": [ "ptt6gbq" ], "isAtAll": false } }
如果我们回复的消息需要@某人,就会配置at字段,里面atDingtalkIds需要的dingtaklId可以是我们从请求中拿到的senderId,即$:ASDD_v1:$k8DFJ837349On my way!==的形式也可以传入正常@。
另外如果出于某些原因,无法响应请求时返回消息,我们还可以通过sessionWebhook来主动发送消息。
本文同步发表于作者博客: 从零开始打造专属钉钉机器人
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/106879.html
摘要:钉钉钉钉是阿里巴巴集团专为中国企业打造的免费沟通和协同的多端平台,提供版,版和手机版,支持手机和电脑间文件互传。 1:@teamhttps://www.atteam.cn/项目协作管理,越复杂越有序,足够简单足够有效,@Team针对企业团队协作所遇到的困境而研发的新一代基于云服务的企业级协同工作平台,通过为每个企业或团队提供专属的私密网络空间和全新的协作方式,帮助企业实现高效便捷的跨部...
摘要:自阮大神的文章发布以来,有了一些改动,添加有很多有用的功能,特别是这个功能,对打造命令行工具集合非常有用,所以写一个新版本的教程还是有必要的。 前言 使用命令行程序对程序员来说很常见,就算是前端工程师或者开发gui的,也需要使用命令行来编译程序或者打包程序 熟练使用命令行工具能极大的提高开发效率,linux自带的命令行工具都非常的有用,但是这些工具都是按照通用需求开发出来的,如果有一些...
摘要:摘要在刚刚结束的上海云栖大会飞天技术汇分论坛上,阿里云视频云产品架构师罗小飞进行了阿里云面向金融政企的最佳实践主题分享,为上海的嘉宾介绍的解决方案与技术服务体系。随后,年阿里云宣布全面降价,打破了行业原有的价格不透明一客一价的模式。 摘要: 在刚刚结束的上海云栖大会飞天技术汇分论坛上,阿里云视频云产品架构师罗小飞进行了《阿里云CDN——面向金融政企的CDN最佳实践》主题分享,为上海的嘉...
摘要:摘要在刚刚结束的上海云栖大会飞天技术汇分论坛上,阿里云视频云产品架构师罗小飞进行了阿里云面向金融政企的最佳实践主题分享,为上海的嘉宾介绍的解决方案与技术服务体系。随后,年阿里云宣布全面降价,打破了行业原有的价格不透明一客一价的模式。 摘要: 在刚刚结束的上海云栖大会飞天技术汇分论坛上,阿里云视频云产品架构师罗小飞进行了《阿里云CDN——面向金融政企的CDN最佳实践》主题分享,为上海的嘉...
摘要:为了满足在更多复杂场景科研攻坚时,对于超高性能算力高速网络传输海量数据存储的更高需求,再次发力,于近日推出了为科研量身定制的新一代超算产品,并将正式更名为云极高性能计算以下简称。科研是科技创新的基础,而高性能计算则是科研的基石。随着数字化走向纵深,科研教育进入信息化时代。在科研项目的推进过程中,往往会面对复杂的数据密集型计算任务,例如仿真、数据建模、渲染等大量运算场景。此时如果使用单一的通用...
阅读 760·2023-04-25 20:47
阅读 2515·2019-08-30 15:53
阅读 916·2019-08-26 14:05
阅读 862·2019-08-26 11:59
阅读 1660·2019-08-26 11:43
阅读 1576·2019-08-26 10:57
阅读 1331·2019-08-23 18:23
阅读 2583·2019-08-23 12:57