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

简介: 监控系列

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

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

  • 自定义关键词:最多可以设置10个关键词,消息中至少包含其中1个关键词才可以发送成功。
  • 加签:就是通过timestampsecret进行拼接后得到的一个字符串

    • 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)

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

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

Text文本类型

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

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

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

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

看下效果图如下:

Markdown文本类型

消息预览:

Link文本消息

消息预览:

ActionCard消息类型

消息预览

FreeCard文本消息

钉钉消息类型的几种格式基本上都说清楚了, 这样你就可以结合自己的代码自定义发送消息到钉钉了。

相关文章
|
6月前
钉钉开放平台支持多种类型的应用
【2月更文挑战第19天】钉钉开放平台支持多种类型的应用
97 6
|
11月前
钉钉OA创建审批InnerContactField 类型 如何对象进行赋值
钉钉OA创建审批InnerContactField 类型 如何对象进行赋值
|
Java 微服务
Java报告推送失败补偿机制;钉钉群通知消息核心代码
Java报告推送失败补偿机制,超过次数后使用钉钉通知开发 自动补偿实现: 要求方法调用的过程中,失败的时候,系统有办法进行自动重试,重试达到一定次数后,钉钉通知开发。 实现设计:注解,反射,定时任务
322 0
Java报告推送失败补偿机制;钉钉群通知消息核心代码
|
jenkins 机器人 Shell
|
SQL Shell 数据库
【Django | 开发】面试招聘信息网站(划分面试官权限&集成钉钉消息)
【Django | 开发】面试招聘信息网站(划分面试官权限&集成钉钉消息)
【Django | 开发】面试招聘信息网站(划分面试官权限&集成钉钉消息)
|
Java 机器人
java开发:发送钉钉消息
使用java发送钉钉消息
1669 0
|
移动开发 JSON 缓存
钉钉消息机器人.Net通用C#Unity实现钉钉消息通知一个工具类(无需SDK,无其他引用)
钉钉消息机器人.Net通用C#Unity实现钉钉消息通知一个工具类(无需SDK,无其他引用) Chinar —— 心分享、心创新! 助力快速完成 .Net 通用的钉钉Post机器人消息通知 为初学者节省宝贵的时间,避免采坑! 官方文档详细,但实现方式上没有过多的说明。 本质上就是一个 POST 消息请求 所以我们只要, 完成正常发送POST 使得钉钉方从中可获取对应格式的数据 即可!
1170 0
钉钉消息机器人.Net通用C#Unity实现钉钉消息通知一个工具类(无需SDK,无其他引用)
|
存储 消息中间件 自然语言处理
如何造一个“钉钉”?谈谈消息系统架构的实现
阿里妹导读:消息类场景是表格存储(Tablestore)主推的方向之一,因其数据存储结构在消息类数据存储上具有天然优势。为了方便用户基于Tablestore为消息类场景建模,Tablestore封装Timeline模型,旨在让用户更快捷的实现消息类场景需求。
5458 0
|
DataWorks 机器人
使用Dataworks的Pyodps节点发送钉钉机器人消息
使用Dataworks的Pyodps节点发送钉钉机器人消息,需要开启沙箱白名单。否则网络不可达。 测试结果: 代码: import jsonimport requestsimport sys reminders 提醒 def send_msg(url,reminders,msg): headers.
|
存储 监控 NoSQL
如何造一个“钉钉”?谈谈消息系统架构的实现 | 8月27号栖夜读
今天的首篇文章,讲述了:消息类场景是表格存储(Tablestore)主推的方向之一,因其数据存储结构在消息类数据存储上具有天然优势。为了方便用户基于Tablestore为消息类场景建模,Tablestore封装Timeline模型,旨在让用户更快捷的实现消息类场景需求。
3285 0

热门文章

最新文章