机器人使用场景
企业内部开发机器人
第三方企业机器人
群模板机器人
自定义机器人接入
消息协议
教程
API参考

接收消息的消息协议

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

消息体

本示例以 text 文本类型为例。
Loading...

参数

类型

说明

senderPlatform

String

消息发送平台。

conversationId

String

会话ID。

atUsers

Array of Object

被@人的信息:

  • dingtalkId:加密的发送者ID。

chatbotCorpId

String

加密的机器人所在的企业corpId。

chatbotUserId

String

加密的机器人ID。

msgId

String

加密的消息ID。

senderNick

String

发送者昵称。

isAdmin

Boolean

是否为管理员:

  • true:是

  • false:否

机器人发布上线后生效,否则不返回。

senderStaffId

String

企业内部群中@该机器人的成员 userId。

机器人发布上线后生效。否则不会返回。

sessionWebhookExpiredTime

Long

当前会话的Webhook地址过期时间。

createAt

String

消息的时间戳,单位毫秒。

senderCorpId

String

企业内部群的发送者当前群的企业corpId。

conversationType

String

会话类型:

  • 1:单聊

  • 2:群聊

senderId

String

加密的发送者ID。

conversationTitle

String

群聊时才有的会话标题。

isInAtList

Boolean

是否在@列表中。

sessionWebhook

String

当前会话的Webhook地址。

text

Object

消息文本:

  • content:机器人接收的消息内容。

该字段仅在消息类型为 text 存在。

msgtype

String

消息类型:

  • text:文本消息

  • richText:富文本消息

  • picture:图片消息

  • audio:语音消息

  • video:视频消息

  • file:文件消息

消息类型的具体格式参看下方消息类型

robotCode

String

机器人编码。

自定义机器人无 robotCode。

消息类型

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

  • 文本消息

    Loading...

    参数

    类型

    说明

    msgtype

    String

    消息类型:

    • text:文本消息

    text

    Object

    消息文本:

    • content:机器人接收的消息内容。

  • 富文本消息

    Loading...

    名称

    类型

    描述

    msgtype

    String

    消息类型:

    • richText:富文本

    content

    Object

    消息内容。

    richText

    Array of Object

    富文本列表。

    说明

    消息列表中可以包含:

    • text:文本消息

    • picture:图片消息

    图片文件的下载码downloadCode,可通过调用服务端API-下载机器人接收消息的文件内容接口获取临时下载链接。
  • 图片消息

    Loading...

    参数

    类型

    说明

    msgtype

    String

    消息类型:

    • picture:图片消息

    downloadCode

    String

    图片文件的下载码,用于换取下载图片的二进制文件,可通过调用服务端API-下载机器人接收消息的文件内容接口获取临时下载链接。

  • 语音消息

    说明

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

    Loading...

    参数

    类型

    说明

    msgtype

    String

    消息类型:

    • audio:语音消息

    downloadCode

    String

    语音文件的下载码,用于换取下载语音的二进制文件,可通过调用服务端API-下载机器人接收消息的文件内容接口获取临时下载链接。

    recognition

    String

    语音识别后的文本。

    duration

    Long

    语音的时长,单位是毫秒。

  • 视频消息

    说明

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

    Loading...

    参数

    类型

    说明

    msgtype

    String

    消息类型:

    • video:视频消息

    downloadCode

    String

    视频文件的下载码,用于换取下载视频的二进制文件,可通过调用服务端API-下载机器人接收消息的文件内容接口获取临时下载链接。

    videoType

    String

    视频文件类型。

    duration

    Long

    视频的时长,单位是毫秒。

  • 文件消息

    说明

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

    Loading...

    参数

    类型

    说明

    msgtype

    String

    消息类型:

    • video:文件消息

    downloadCode

    String

    文件的下载码,用于换取下载文件的二进制文件,可通过调用服务端API-下载机器人接收消息的文件内容接口获取临时下载链接。

    fileName

    String

    文件名。

相关内容

如果创建企业内部应用机器人时,消息接收模式选择了 HTTP模式,在机器人使用过程中,当机器人收到消息时,此时除了上述的消息体,此时还存在 HTTP header参数,格式如下:

Loading...

参数

说明

timestamp

消息发送的时间戳,单位是毫秒。

sign

签名值。

你需要对 header 中的 timestamp 和 sign 进行验证,用来判断是否是来自钉钉的合法请求,避免其他仿冒钉钉调用开发者的HTTPS服务传送数据,具体验证逻辑如下:

  • timestamp 与系统当前时间戳如果相差1小时以上,则认为是非法的请求。

  • sign 与开发者自己计算的结果不一致,则认为是非法的请求。

当timestamp和sign同时验证通过,才能认为是来自钉钉的合法请求。

使用HmacSHA256算法计算签名,然后进行Base64 encode,得到最终的签名值,示例如下:

Loading...

配置项

说明

timestamp

当前时间的时间戳,单位毫秒

appSecret

应用的 Client Secret,详情参考Client Secret

这篇文档是否有帮助?
点击纠错