钉钉群机器人开发接口
钉钉群机器人开发接口
获取自定义机器人webhook
步骤一,在机器人管理页面选择“自定义”机器人,输入机器人名字并选择要发送消息的群。如果需要的话,可以为机器人设置一个头像。点击“完成添加”,完成后会生成Hook地址,如下图:
步骤二,点击“复制”按钮,即可获得这个机器人对应的Webhook地址,其格式如下:
https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx
使用自定义机器人
(1)获取到Webhook地址后,用户可以向这个地址发起HTTP POST 请求,即可实现给该钉钉群发送消息。注意,发起POST请求时,必须将字符集编码设置成UTF-8。
(2)当前自定义机器人支持文本 (text)、链接 (link)、markdown(markdown)、ActionCard、FeedCard消息类型,大家可以根据自己的使用场景选择合适的消息类型,达到最好的展示样式。
(3)自定义机器人发送消息时,可以通过手机号码指定“被@人列表”。在“被@人列表”里面的人员收到该消息时,会有@消息提醒(免打扰会话仍然通知提醒,首屏出现“有人@你”)。
(4)当前机器人尚不支持应答机制 (该机制指的是群里成员在聊天@机器人的时候,钉钉回调指定的服务地址,即Outgoing机器人)。
SDK :
可以下载SDK,简化调用方式。
消息发送频率限制:
每个机器人每分钟最多发送20条。消息发送太频繁会严重影响群成员的使用体验,大量发消息的场景 (譬如系统监控报警) 可以将这些信息进行整合,通过markdown消息以摘要的形式发送到群里。
测试自定义机器人
通过下面方法,可以快速验证自定义机器人是否可以正常工作:
使用命令行工具curl(最新版本:7.29.0
)。
为避免出错,请将以下命令直接复制到命令行,再将xxxxxxxx替换为真实access_token;若测试出错,请检查复制的命令是否和测试命令一致,多特殊字符会报错
curl ‘https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx‘ -H ‘Content-Type: application/json‘ -d ‘{"msgtype": "text", "text": {"content": "我就是我, 是不一样的烟火"}}‘
python示例:
#!/usr/bin/env python # -*- coding: utf-8 -*- #author tom import requests import jsondef dingTalk():headers={"Content-Type": "application/json"}data={"msgtype": "text","text": {"content": "我就是我, 是不一样的烟火"}}json_data=json.dumps(data)requests.post(url=‘https://oapi.dingtalk.com/robot/send?access_token=35fd4b08dea143f19921121f0a6282dcb014ebb11dae72114ed569c9effe8e5e‘,data=json_data,headers=headers)
消息类型及数据格式
text类型
{"msgtype": "text", "text": {"content": "我就是我, 是不一样的烟火@156xxxx8827"}, "at": {"atMobiles": ["156xxxx8827", "189xxxx8325"], "isAtAll": false}
}
参数 |
参数类型 |
必须 |
说明 |
msgtype |
String |
是 |
消息类型,此时固定为:text |
content |
String |
是 |
消息内容 |
atMobiles |
Array |
否 |
被@人的手机号(在content里添加@人的手机号) |
isAtAll |
bool |
否 |
@所有人时:true,否则为:false |
link类型
{"msgtype": "link", "link": {"text": "这个即将发布的新版本,创始人陈航(花名“无招”)称它为“红树林”。
而在此之前,每当面临重大升级,产品经理们都会取一个应景的代号,这一次,为什么是“红树林”?", "title": "时代的火车向前开", "picUrl": "", "messageUrl": "https://www.dingtalk.com/s?__biz=MzA4NjMwMTA2Ng==&mid=2650316842&idx=1&sn=60da3ea2b29f1dcc43a7c8e4a7c97a16&scene=2&srcid=09189AnRJEdIiWVaKltFzNTw&from=timeline&isappinstalled=0&key=&ascene=2&uin=&devicetype=android-23&version=26031933&nettype=WIFI"}
}
参数 |
参数类型 |
必须 |
说明 |
msgtype |
String |
是 |
消息类型,此时固定为:link |
title |
String |
是 |
消息标题 |
text |
String |
是 |
消息内容。如果太长只会部分展示 |
messageUrl |
String |
是 |
点击消息跳转的URL |
picUrl |
String |
否 |
图片URL |
转存失败重新上传取消
markdown类型
{"msgtype": "markdown","markdown": {"title":"杭州天气","text": "#### 杭州天气 @156xxxx8827\n" +"> 9度,西北风1级,空气良89,相对温度73%\n\n" +"> ![screenshot](https://gw.alicdn.com/tfs/TB1ut3xxbsrBKNjSZFpXXcXhFXa-846-786.png)\n" +"> ###### 10点20分发布 [天气](http://www.thinkpage.cn/) \n"},"at": {"atMobiles": ["156xxxx8827", "189xxxx8325"], "isAtAll": false}}
参数 |
类型 |
必选 |
说明 |
msgtype |
String |
是 |
此消息类型为固定markdown |
title |
String |
是 |
首屏会话透出的展示内容 |
text |
String |
是 |
markdown格式的消息 |
atMobiles |
Array |
否 |
被@人的手机号(在text内容里要有@手机号) |
isAtAll |
bool |
否 |
@所有人时:true,否则为:false |
转存失败重新上传取消
说明:目前只支持md语法的子集,具体支持的元素如下:
标题
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题引用
> A man who stands for nothing will fall for anything.文字加粗、斜体
**bold**
*italic*链接
[this is a link](http://name.com)图片
![](http://name.com/pic.jpg)无序列表
- item1
- item2有序列表
1. item1
2. item2
整体跳转ActionCard类型
{"actionCard": {"title": "乔布斯 20 年前想打造一间苹果咖啡厅,而它正是 Apple Store 的前身", "text": "![screenshot](@lADOpwk3K80C0M0FoA) ### 乔布斯 20 年前想打造的苹果咖啡厅 Apple Store 的设计正从原来满满的科技感走向生活化,而其生活化的走向其实可以追溯到 20 年前苹果一个建立咖啡馆的计划", "hideAvatar": "0", "btnOrientation": "0", "singleTitle" : "阅读全文","singleURL" : "https://www.dingtalk.com/"}, "msgtype": "actionCard"
}
参数 |
类型 |
必选 |
说明 |
msgtype |
string |
true |
此消息类型为固定actionCard |
title |
string |
true |
首屏会话透出的展示内容 |
text |
string |
true |
markdown格式的消息 |
singleTitle |
string |
true |
单个按钮的方案。(设置此项和singleURL后btns无效) |
singleURL |
string |
true |
点击singleTitle按钮触发的URL |
btnOrientation |
string |
false |
0-按钮竖直排列,1-按钮横向排列 |
hideAvatar |
string |
false |
0-正常发消息者头像,1-隐藏发消息者头像 |
通过整体跳转ActionCard类型消息发出的消息样式如下:
独立跳转ActionCard类型
{"actionCard": {"title": "乔布斯 20 年前想打造一间苹果咖啡厅,而它正是 Apple Store 的前身", "text": "![screenshot](@lADOpwk3K80C0M0FoA) ### 乔布斯 20 年前想打造的苹果咖啡厅 Apple Store 的设计正从原来满满的科技感走向生活化,而其生活化的走向其实可以追溯到 20 年前苹果一个建立咖啡馆的计划", "hideAvatar": "0", "btnOrientation": "0", "btns": [{"title": "内容不错", "actionURL": "https://www.dingtalk.com/"}, {"title": "不感兴趣", "actionURL": "https://www.dingtalk.com/"}]}, "msgtype": "actionCard"
}
参数 |
类型 |
必选 |
说明 |
msgtype |
string |
true |
此消息类型为固定actionCard |
title |
string |
true |
首屏会话透出的展示内容 |
text |
string |
true |
markdown格式的消息 |
btns |
array |
true |
按钮的信息:title-按钮方案,actionURL-点击按钮触发的URL |
btnOrientation |
string |
false |
0-按钮竖直排列,1-按钮横向排列 |
hideAvatar |
string |
false |
0-正常发消息者头像,1-隐藏发消息者头像 |
通过独立跳转ActionCard类型消息发出的消息样式如下:
FeedCard类型
{"feedCard": {"links": [{"title": "时代的火车向前开", "messageURL": "https://www.dingtalk.com/s?__biz=MzA4NjMwMTA2Ng==&mid=2650316842&idx=1&sn=60da3ea2b29f1dcc43a7c8e4a7c97a16&scene=2&srcid=09189AnRJEdIiWVaKltFzNTw&from=timeline&isappinstalled=0&key=&ascene=2&uin=&devicetype=android-23&version=26031933&nettype=WIFI", "picURL": "https://www.dingtalk.com/"},{"title": "时代的火车向前开2", "messageURL": "https://www.dingtalk.com/s?__biz=MzA4NjMwMTA2Ng==&mid=2650316842&idx=1&sn=60da3ea2b29f1dcc43a7c8e4a7c97a16&scene=2&srcid=09189AnRJEdIiWVaKltFzNTw&from=timeline&isappinstalled=0&key=&ascene=2&uin=&devicetype=android-23&version=26031933&nettype=WIFI", "picURL": "https://www.dingtalk.com/"}]}, "msgtype": "feedCard"
}
参数 |
类型 |
必选 |
说明 |
msgtype |
string |
true |
此消息类型为固定feedCard |
title |
string |
true |
单条信息文本 |
messageURL |
string |
true |
点击单条信息到跳转链接 |
picURL |
string |
true |
单条信息后面图片的URL |
通过FeedCard类型消息发出的消息样式如下:
钉钉群机器人开发接口
原文地址:https://www.cnblogs.com/tjp40922/p/11299023.html
钉钉群机器人开发接口相关推荐
- 钉钉企业内部机器人开发——绑定群聊信息到机器人
开发机器人的过程中,需要将用户添加的机器人存储在数据库中,对于企业内部机器人,官方只提供一个token,其他的机器人信息都没有提供. 对于自定义webhook机器人,还多了一个secret,其实,一个 ...
- 钉钉企业内部机器人开发——同步组织架构人员信息到数据库
开发钉钉机器人的过程中,我们不仅需要直接把组织架构用户信息导入数据库,还要不定时的进行同步,因为钉钉里面的人员总是在变动,部门也是不断在调整. 下面是使用递归的方式,调用钉钉接口,同步部门和人员信息, ...
- 钉钉自定义Outgoing机器人开发
一.实现效果 二.交互流程 用户在群里@钉钉机器人,开发者服务器处理后,将@消息推送到群中的流程涉及到三个角色:钉钉客户端.钉钉服务器.开发者服务器 三者交互时序图如下: 注意,当前机器人尚不支持应答 ...
- 使用禅道或Jira系统对接钉钉的群机器人消息管理,为什么没有艾特 @人呢?
首先,这个功能的方法如下: 禅道系统的Bug动态,对接钉钉软件,实时进行钉钉群内提醒,机器人并@ 艾特指派的开发人员. https://blog.csdn.net/woshiyigerenlaide/ ...
- 企业微信外部群机器人api接口sdk登陆
用代码实现hook拦截获取到微信二维码,用到的工具有 ce od. 先看下图片在内存里面的表现形式,微信登陆的二维码是一个png的格式,看下png在内存的表现形式,看下图,就是png在内存里面的格式, ...
- 顶顶通新一代FreeSWITCH电话机器人开发接口
介绍 顶顶通新一代FreeSWITCH智能客服接口,包含脚本解析引擎和话术编辑器2部分. 话术编辑器 话术编辑器是一个图形化的应用程序,通过图形化编辑话术流程,生成JSON文件.支持ASR流接口,支持 ...
- 使用asp.net开发钉钉群机器人全过程
集团是使用钉钉进行工作交流的, 发现群里有很多问题其实是重复的,就在想是不是可以使用钉钉的群机器人,虽然说的确是可以部分实现,但是感觉还是差点什么,而且公司内部很多东西也不方便放上去,所以就想开发一个 ...
- 钉钉企业内部机器人python开发(公网部署版本)
钉钉企业内部机器人开发(公网部署版本) 钉钉给出的开发文档地址如下: https://open.dingtalk.com/document/group/enterprise-created-chatb ...
- 钉钉群机器人定时发送消息并@所有人
1.添加钉钉自定义群机器人 参考文章如下: 官方网址:https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.p2lr6t&a ...
最新文章
- og-bin=mysql-bin_init_connect + binlog 记录 mysql 操作日志
- python 使用UUID库生成唯一ID
- UVA 331 Mapping the Swaps
- Qt 读取XML文档的简单示例
- CV Code|计算机视觉开源周报20200602期~文末送书
- JavaScript-switch语句
- Java logging整理
- Oracle11g补丁安装(单实例)
- 基于Opencv和Tesseract的行驶证识别系统设计
- 基于Matlab的海洋监视雷达检测仿真(附源码)
- java设计斗地主游戏引言_斗地主游戏设计 毕业论文.doc
- 打开FOXMAIL常见错误提示“Message format error”
- 王巧乐菇凉的360图书馆--记录大量web日志分析的内容,非常好
- 云原生2.0时代,保险企业为何要迎智而上?
- 不会吧,不会吧程序员这样的消费观
- Codeforces 1146G Zoning Restrictions dp
- PHP实现给视频加图片水印,怎么在视频画面上加图片?如何给视频添加自己的图片作为水印?视频添加图片水印的方法...
- SAD SATD的区别及应用
- ASP.NET MVC中的身份验证
- Mysql索引Hash和BTree的区别
热门文章
- 纳米饮水思源,原子结构探秘
- 2转自 饮水思源 bbs.sjtu.edu.cn·[FROM: 202.120.25.97]
- [SMOJ220]太空飞行计划
- python计算长方体体积最简单代码_C语言编程简单的小程序,计算长方体体积!...
- Redis基础-下载安装、配置、数据类型、指令、Jedis、持久化
- B. Marvolo Gaunt’s Ring (递推)
- 我的2007-written in BIT
- Echarts - lengend图例自定义
- 【论文汇总】CVPR2020语义分割医学图像分割paper汇总
- 【java简单小项目】勇者斗魔王小游戏