简介
我们在使用钉钉的时候,有时候会需要向员工发送很多日常打卡消息或者业务预警,这个时候,我们就可以利用钉钉的群机器人功能,可以大幅提高效率。
先注册一个机器人到群里
1.打开钉钉电脑版
2.选择需要添加机器人的群聊,然后依次单击群设置 > 智能群助手。
3.在机器人管理页面选择自定义机器人,输入机器人名字并选择要发送消息的群,同时可以为机器人设置机器人头像。
4.完成必要的安全设置(点击查看更多安全设置),至少一项,勾选我已阅读并同意《自定义机器人服务及免责条款》,然后单击完成。
5.完成安全设置后,复制出机器人的Webhook地址,可用于向这个群发送消息,格式如下:
https://oapi.dingtalk.com/robot/send?access_token=XXXXXX
注意
请保管好此Webhook 地址,不要公布在外部网站上,泄露后有安全风险。
请保管好此Webhook 地址,不要公布在外部网站上,泄露后有安全风险。
请保管好此Webhook 地址,不要公布在外部网站上,泄露后有安全风险。
实现方法: 使用curl命令
1.发送简单文字消息 text类型
在任意Linux或macOS或支持curl的设备上运行这个命令
curl '这里替换成你刚刚得到的Webhook地址' \ -H 'Content-Type: application/json' \ -d '{"msgtype": "text","text": {"content":"这里替换成你要发送的消息"}}'
发送完成后,正常情况下会返回200代码和ok字样
更多text类型消息的参数请参见这种图片
2.发送一个链接 link类型
还是一样在支持curl的设备上运行这个命令
curl '这里替换成你刚刚得到的Webhook地址' \ -H 'Content-Type: application/json' \ -d { "msgtype": "link", "link": { "text": "这里可以写一段对于链接的简介", "title": "链接标题,可自定义", "picUrl": "如果有链接截图或图标请在这里填写图片地址", "messageUrl": "链接地址写在这里" } }
参数要求请参见下图
3.发送一条图文消息 markdown类型
示例命令如下:
curl '这里替换成你刚刚得到的Webhook地址' \ -H 'Content-Type: application/json' \ -d { "msgtype": "markdown", "markdown": { "title":"杭州天气", "text": "#### 杭州天气 @150XXXXXXXX \n > 9度,西北风1级,空气良89,相对温度73%\n > ![screenshot](https://img.alicdn.com/tfs/TB1NwmBEL9TBuNjy1zbXXXpepXa-2400-1218.png)\n > ###### 10点20分发布 [天气](https://www.dingtalk.com) \n" }, "at": { "atMobiles": [ "150XXXXXXXX" ], "atUserIds": [ "user123" ], "isAtAll": false } }
效果就是这样的
目前只支持markdown语法的子集,具体支持的元素如下:
标题
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
引用
> 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
还有参数要求在这儿
4.卡片 整体跳转ActionCard类型
示例命令如下:
curl '这里替换成你刚刚得到的Webhook地址' \ -H 'Content-Type: application/json' \ -d { "actionCard": { "title": "乔布斯 20 年前想打造一间苹果咖啡厅,而它正是 Apple Store 的前身", "text": "![screenshot](https://gw.alicdn.com/tfs/TB1ut3xxbsrBKNjSZFpXXcXhFXa-846-786.png) ### 乔布斯 20 年前想打造的苹果咖啡厅 Apple Store 的设计正从原来满满的科技感走向生活化,而其生活化的走向其实可以追溯到 20 年前苹果一个建立咖啡馆的计划", "btnOrientation": "0", "singleTitle" : "阅读全文", "singleURL" : "https://www.dingtalk.com/" }, "msgtype": "actionCard" }
效果如下:
参数要求请参见下图:
5.卡片 独立跳转ActionCard类型
示例代码如下:
curl '这里替换成你刚刚得到的Webhook地址' \ -H 'Content-Type: application/json' \ -d { "msgtype": "actionCard", "actionCard": { "title": "我 20 年前想打造一间苹果咖啡厅,而它正是 Apple Store 的前身", "text": "![screenshot](https://img.alicdn.com/tfs/TB1NwmBEL9TBuNjy1zbXXXpepXa-2400-1218.png) \n\n #### 乔布斯 20 年前想打造的苹果咖啡厅 \n\n Apple Store 的设计正从原来满满的科技感走向生活化,而其生活化的走向其实可以追溯到 20 年前苹果一个建立咖啡馆的计划", "btnOrientation": "0", "btns": [ { "title": "内容不错", "actionURL": "https://www.dingtalk.com/" }, { "title": "不感兴趣", "actionURL": "https://www.dingtalk.com/" } ] } }
使用这种类型可以做到以下效果,效果图:
参数要求如下:
6.类似文章推送 FeedCard类型
示例代码如下:
curl '这里替换成你刚刚得到的Webhook地址' \ -H 'Content-Type: application/json' \ -d { "msgtype":"feedCard", "feedCard": { "links": [ { "title": "时代的火车向前开1", "messageURL": "https://www.dingtalk.com/", "picURL": "https://img.alicdn.com/tfs/TB1NwmBEL9TBuNjy1zbXXXpepXa-2400-1218.png" }, { "title": "时代的火车向前开2", "messageURL": "https://www.dingtalk.com/", "picURL": "https://img.alicdn.com/tfs/TB1NwmBEL9TBuNjy1zbXXXpepXa-2400-1218.png" } ] } }
使用这种类型可以做到以下效果,见下图:
参数要求:
就这么几种类型了,大家可以自行挖掘,最后附上常见错误代码:
// 消息内容中不包含任何关键词 { "errcode":310000, "errmsg":"keywords not in content" }
// timestamp 无效 { "errcode":310000, "errmsg":"invalid timestamp" }
// 签名不匹配 { "errcode":310000, "errmsg":"sign not match" }
// IP地址不在白名单 { "errcode":310000, "errmsg":"ip X.X.X.X not in whitelist" }
参考资料:
1.钉钉自定义机器人开放文档:
https://open.dingtalk.com/document/group/custom-robot-access
2.钉钉机器人安全设置开放文档:
https://open.dingtalk.com/document/robots/customize-robot-security-settings
3.钉钉机器人消息链接说明:
https://open.dingtalk.com/document/orgapp-server/message-link-description