Skip to main content
本文介绍了通过机器人发送消息的类型与数据格式,并详细介绍了机器人接收消息的数据格式。

机器人发送消息

消息类型

发送机器人消息的方式有2种,通过接口发送机器人消息和通过Webhook发送机器人消息。不同的方式,支持的消息类型和数据格式不同。
推荐使用接口方式发送消息。

方式一:接口方式

重要

  • 人与机器人会话中机器人消息:支持图片、语音、文件收发能力。
  • 群聊会话中机器人消息:图片、语音、视频、文件发送能力**,但群聊中用户无法@机器人发送语音、视频、文件给机器人**。

适用接口

数据格式

  • 消息模板Key:消息模板Key是开发者发送消息时需要用到的一个唯一标识。它可以在编写程序代码时,能快速地指向一个事先设定好的消息模板。
  • 消息模板参数:用于在消息模板中替换预定义占位符的实际数据。例如,当你有一个sampleText消息模板Key时,此时你需要定义content字段的值。
  • 示例:提供了企业内部应用机器人在群内发送文本类型的 HTTP 示例代码:
    • 消息模板Key: "msgKey" : "sampleText"
    • 消息模板参数: "msgParam" : "{\"content\":\"钉钉,让进步发生\"}"
详情参考机器人发送群聊消息

Markdown支持的语法

对于消息类型 sampleMarkdown 的markdown语法的补充说明。

方式二:Webhook方式

webhook方式只支持在群聊会话。
Webhook发送消息的实现方式,请参考机器人回复/发送消息创建自定义机器人

文本text类型

777.png

链接Link类型

该类型不支持@人。
link消息

Markdown类型

image.png 目前只支持Markdown语法的子集,支持的元素如下:

ActionCard类型

  • 整体跳转ActionCard类型
image.png
  • 独立跳转ActionCard类型
屏幕快照 2019-12-25 下午8.27.52.png

FeedCard类型

该类型不支持@人。
屏幕快照 2019-12-25 下午8.29.45.png 当不想回复消息到群里时,回复格式如下:

机器人接收消息

当用户@群机器人或与机器人发送单聊消息时,钉钉会把机器人接收到的消息发送到开发者设置的机器人回调服务。

消息体

本示例以 text 文本类型为例:如果你使用 HTTP 回调的方式,使用 POST 请求接收钉钉推送的消息。

消息类型

机器人目前支持接收文本、语音、图片、文件、视频、富文本类型消息,下方为机器人接收各种消息类型的字段解释。除消息类型和消息体字段不同之外,其余参数字段与上面表格相同。

文本消息

富文本消息

图片消息

语音消息

群聊会话中,群成员 @机器人时,机器人不支持接收语音消息。

视频消息

群聊会话中,群成员 @机器人时,机器人不支持接收视频消息。

文件消息

群聊会话中,群成员 @机器人时,机器人不支持接收文件消息。

相关内容

如果创建企业内部应用机器人时,消息接收模式选择了 HTTP模式,在机器人使用过程中,当机器人收到消息时,此时除了上述的消息体,此时还存在 HTTP header参数,格式如下:
你需要对 header 中的 timestamp 和 sign 进行验证,用来判断是否是来自钉钉的合法请求,避免其他仿冒钉钉调用开发者的HTTPS服务传送数据,具体验证逻辑如下:
  • timestamp 与系统当前时间戳如果相差1小时以上,则认为是非法的请求。
  • sign 与开发者自己计算的结果不一致,则认为是非法的请求。
当timestamp和sign同时验证通过,才能认为是来自钉钉的合法请求。 使用HmacSHA256算法计算签名,然后进行Base64 encode,得到最终的签名值,示例如下:

错误码

当机器人 Webhook 和 Stream 用量超量后,则会出现以下内容:

错误表现

群聊会话
超量群聊
单聊会话
超量单聊

错误说明

相关文档

  • 企业机器人发送群聊消息
  • 企业机器人发送单聊消息
  • 自定义机器人发送群聊消息
  • 群模板机器人发送群聊消息