点击展开更新日志

2025

09-16

【新增】钉钉群机器人配置

nexttime

会有些什么呢(❁´◡`❁)

源起

想要找一种免费的消息推送方式,最开始是打算使用 server酱 的,但是不氪金每天只有5条的限制,后来想起之前用过的 pushplus,可是不知道何时开始需要实名认证了,蒜鸟蒜鸟。

想到了短信转发器用的钉钉,而且官方也提供了比较完善的文档,所以用了下还不错,也支持 markdown 格式,个人做消息推送足够了。

钉钉群机器人

参考文档:自定义机器人发送群聊消息-钉钉开放平台

机器人配置

参考上面官方平台文档创建群聊,添加一个自定义机器人,【安全设置】选择加签,获取 webhook 地址,后续需要。

每个机器人每分钟最多发送20条消息到群里,如果超过20条,会限流10分钟。

因此建议发送前进行汇总后发送。

API

参考文档:自定义机器人发送消息的类型-钉钉开放平台

自定义群机器人支持的消息类型如下:

消息类型 是否支持@人
Text文本类型 支持
Link链接消息 不支持
Markdown类型 支持
整体跳转ActionCard类 支持
独立跳转ActionCard类 支持
FeedCard类型 不支持

请求方式和路径

1
POST https://oapi.dingtalk.com/robot/send?access_token=6b1****b2c5a2a0

文本类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"at": {
"atMobiles":[
"180xxxxxx"
],
"atUserIds":[
"user123"
],
"isAtAll": false
},
"text": {
"content":"我就是我, @user123 是不一样的烟火"
},
"msgtype":"text"
}
参数 参数类型 是否必填 说明
msgtype String 消息类型,此时固定为:text
content String 消息内容
atMobiles Array of String 被@人的手机号:会添加到content里,只能@群内成员,非群内成员会脱敏
atUserIds Array of String 被@人的用户userId:会添加到content里
isAtAll Boolean 是否@所有人

链接类型

1
2
3
4
5
6
7
8
9
{
"msgtype": "link",
"link": {
"text": "这个即将发布的新版本,创始人xx称它为红树林。而在此之前,每当面临重大升级,产品经理们都会取一个应景的代号,这一次,为什么是红树林",
"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,打开方式如下:
- 移动端:钉钉客户端内打开
- PC端:默认侧边栏打开,如果希望浏览器打开,在url添加参数 pc_slide=false
picUrl String 图片URL

Markdown类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"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
}
}
参数 类型 是否必填 说明
msgtype String 消息类型,此时固定为:markdown
title String 首屏会话透出的展示内容
text String markdown格式的消息。
atMobiles Array 被@人的手机号,同上。
atUserIds Array 被@人的userId。
isAtAll Boolean 是否@所有人。

目前只支持 markdown 语法的自己,具体支持元素如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
标题
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题

引用
> A man who stands for nothing will fall for anything.

文字加粗、斜体
**bold**
*italic*

链接
[this is a link](http://name.com)

图片(建议不要超过20张)
![](http://name.com/pic.jpg)

无序列表
- item1
- item2

有序列表
1. item1
2. item2

整体跳转ActionCard类型

1
2
3
4
5
6
7
8
9
10
11
12
{
"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"
}
参数 类型 是否必填 说明
msgtype String 消息类型,此时固定为:actionCard
title String 首屏会话透出的展示内容。
text String markdown格式的消息。如果要实现@功能,在 text 内容中添加@用户的 userId,如 @manager7675
singleTitle String 单个按钮的标题。
singleURL String 点击消息跳转的URL,打开方式同链接。
btnOrientation String 按钮排列方式:
- 0:按钮竖直排列
- 1:按钮横向排列

独立跳转ActionCard类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"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/"
}
]
}
}
参数 类型 是否必填 说明
msgtype
title
text
btns Array 按钮
title String 按钮标题
actionURL
btnOrientation String

FeedCard类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"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"
}
]
}
}
参数 类型 是否必填 说明
msgtype
title
messageURL
picURL