选择应用类型
第三方企业应用开发
学习地图
动态与公告
应用开发平台简介(新版)
应用开发平台简介
开发应用(新版)
开发应用
服务端API
客户端API
AppLink协议
事件订阅
常见问题
运营规范
历史文档

接收消息的消息协议

更新于 2023-01-05当用户@机器人时,钉钉会通过机器人开发者的HTTPS服务地址,把消息内容发送出去,本文介绍了机器人的接收消息协议。

HTTP header参数

Loading...

参数

说明

timestamp

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

sign

签名值。

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

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

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

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

sign的计算方法

header中的timestamp + "\n" + 机器人的appSecret当做签名字符串,使用HmacSHA256算法计算签名,然后进行Base64 encode,得到最终的签名值。

签名计算代码示例(Java)

Loading...

HTTP Body

Loading...

参数说明

参数

是否必填

类型

说明

msgtype

String

目前只支持text。

content

String

消息文本。

msgId

String

加密的消息ID。

createAt

String

消息的时间戳,单位ms。

conversationType

String

1:单聊

2:群聊

conversationId

String

会话ID。

conversationTitle

String

群聊时才有的会话标题。

senderId

String

加密的发送者ID。

说明

使用senderStaffId,作为发送者userid值。

senderNick

String

发送者昵称。

senderCorpId

String

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

sessionWebhook

String

当前会话的Webhook地址。

sessionWebhookExpiredTime

Long

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

isAdmin

boolean

是否为管理员。

说明

机器人发布上线后生效。

chatbotCorpId

String

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

isInAtList

boolean

是否在@列表中。

senderStaffId

String

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

说明

该字段在机器人发布线上版本后,才会返回。

chatbotUserId

String

加密的机器人ID。

atUsers

Array

被@人的信息。

  • dingtalkId:加密的发送者ID。

  • staffId:企业内部群有的发送者在企业内的userid。

HTTP响应格式

开发者可以根据自己的业务需要,选择回复一段消息,目前支持text、markdown、整体跳转actionCard类型、独立跳转actionCard类型、feedCard这5种消息类型。详情参考消息类型和数据格式

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