深圳幻海软件技术有限公司 欢迎您!

钉钉常用的消息类型与数据格式总结

2023-02-28

记录发送钉钉的几种格式消息的使用方式。目前通过webhook向钉钉发送消息,必须要有安全配置:自定义关键词:最多可以设置​​10​​个关键词,消息中​​至少包含其中1个关键词​​才可以发送成功。加签:就是通过​​timestamp​​和​​secret​​进行拼接后得到的一个字符串timestamp

记录发送钉钉的几种格式消息的使用方式。

目前通过webhook向钉钉发送消息,必须要有安全配置

  • 自定义关键词:最多可以设置​​10​​个关键词,消息中​​至少包含其中1个关键词​​才可以发送成功。
  • 加签:就是通过​​timestamp​​和​​secret​​进行拼接后得到的一个字符串
  • timestamp: 当前时间戳,单位是毫秒,与请求调用时间误差不能超过1小时。
  • secret: 密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的字符串。
  • IP地址段: 设置IP地址白名单,仅允许白名单内的地址才能发起请求。

下面记录一个使用​​Python​​编写的生成加签字符串的脚本:

#python 3.8
import time
import hmac
import hashlib
import base64
import urllib.parse
timestamp = str(round(time.time() * 1000))
#webhook机器人设置界面上复制的加签
secret = 'SEC10d6e79b42bd94be0d0d603843651aa2ccd7186db6edbcxxxxxxxxxxxxxcf421cd'
secret_enc = secret.encode('utf-8')
string_to_sign = '{}\n{}'.format(timestamp, secret)
string_to_sign_enc = string_to_sign.encode('utf-8')
hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
#webhook机器人设置界面上复制的Webhook地址
webhook_url_base = 'https://oapi.dingtalk.com/robot/send?access_token=e9a8118c8a3dcxxxxxxxxxx685fab41df25b9dc865fd74'
webhook_url = '{}&timestamp={}&sign={}'.format(webhook_url_base,timestamp,sign)
print(webhook_url)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.

准备好加签后的webhook地址后,就可以通过http请求,向钉钉模拟发送消息了。

钉钉消息类型和格式有以下几种:

Text文本类型

先了解下消息体字段含义:

然后通过postman结合上面我们通过Python生成的Webhook地址即可模拟发送消息了:

  • 如果想要在群里单独艾特某人,需要在​​content​​中使用​​@183xxxxxxxx​​即可。
  • 如果想要群里艾特所有人,只需要保留​​at.isAtAll​​即可,​​at.atMobiles​​则不需配置。
  • 如果想要逐个艾特​​at.atMobiles​​里面的人,则不要在​​content​​中配置​​@183xxxxxxxx​​格式即可,如下:

大概也就这几种艾特的方式或者情景,如有其他的,可以自行测试研究即可。当然其它几种消息类型也是这样;

看下效果图如下:

Markdown文本类型


消息预览:

Link文本消息

消息预览:

ActionCard消息类型


消息预览:

FreeCard文本消息

大概就这么多了, 好了这些格式你了解了么?