有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

功能说明

控制台启用“机器人事件回调”之后,当群内有用户@机器人时,App 后台将收到该@消息的回调。

注意事项

要启用回调,必须配置回调 URL,并打开本条回调协议对应的开关,配置方法详见 第三方回调配置 文档。
回调的方向是即时通信 IM 后台向 App 后台发起 HTTP POST 请求。
App 后台在收到回调请求之后,务必校验请求 URL 中的参数 SDKAppID 是否是自己的 SDKAppID。
其他安全相关事宜请参考 第三方回调简介:安全考虑 文档。

可能触发该回调的场景

群内有用户@机器人后(@所有人不会触发该回调)

回调发生时机

群内有用户@机器人后。

接口说明

请求 URL 示例

以下示例中 App 配置的回调 URL 为 https://www.example.com示例:
https://www.example.com?SdkAppid=$SDKAppID&CallbackCommand=$CallbackCommand&contenttype=json&ClientIP=$ClientIP&OptPlatform=$OptPlatform

请求参数说明

参数
说明
https
请求协议为 HTTPS,请求方式为 POST
www.example.com
回调 URL
SdkAppid
创建应用时在即时通信 IM 控制台分配的 SDKAppID
CallbackCommand
固定为 Bot.OnGroupMessage
contenttype
固定值为 JSON
ClientIP
客户端 IP,格式如:127.0.0.1
OptPlatform
客户端平台,取值参见 第三方回调简介:回调协议 中 OptPlatform 的参数含义

请求包示例

{
"CallbackCommand": "Bot.OnGroupMessage", // 回调命令
"GroupId": "@TGS#2J4SZEAEL", // 群组 ID
"Type": "Public", // 群组类型
"From_Account": "jared", // 发送者
"Operator_Account":"admin", // 请求的发起者
"Random": 123456, // 随机数
"MsgSeq": 123, // 消息的序列号
"MsgTime": 1490686222, // 消息的时间
"OnlineOnlyFlag": 1, //在线消息,为1,否则为0;直播群忽略此属性,为默认值0。
"MsgBody": [ // 消息体,参见 TIMMessage 消息对象
{
"MsgType": "TIMTextElem", // 文本
"MsgContent": {
"Text": "@@RBT#001 hello"
}
}
],
"AtRobots_Account": [ "@RBT#001" ], // 被@的机器人列表,群里有多个机器人时,用户可以@多个机器人
"CloudCustomData": "your cloud custom data",
"EventTime": 1670574414123//毫秒级别,事件触发时间戳
}

请求包字段说明

字段
类型
说明
CallbackCommand
String
回调命令
GroupId
String
产生群消息的群组 ID
Type
String
产生群消息的 群组类型介绍,例如 Public
From_Account
String
消息发送者 UserID
Operator_Account
String
请求发起者 UserID,可以用来识别是否为管理员请求的
Random
Integer
发消息请求中的32位随机数
MsgSeq
Integer
消息序列号,一条消息的唯一标示<br>群聊消息使用 MsgSeq 进行排序,MsgSeq 值越大消息越靠后
MsgTime
Integer
消息发送的时间戳,对应后台 Server 时间
OnlineOnlyFlag
Integer
在线消息,为1,否则为0;直播群忽略此属性,为默认值0。
MsgBody
Array
消息体,具体参见 消息格式描述
AtRobots_Account
Array
被@的机器人列表,群里有多个机器人时,用户可以@多个机器人
CloudCustomData
String
消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到)
TopicId
String
话题的 ID,若具有此选项表示在话题内发言,仅支持话题的社群适用此选项
EventTime
Integer
事件触发的毫秒级别时间戳

应答包示例

App 后台同步数据后,发送回调应答包。
{
"ActionStatus": "OK",
"ErrorInfo": "",
"ErrorCode": 0 //忽略回调结果
}

应答包字段说明

字段
类型
属性
说明
ActionStatus
String
必填
请求处理的结果,OK 表示处理成功,FAIL 表示失败
ErrorCode
Integer
必填
错误码,此处填0表示忽略应答结果
ErrorInfo
String
必填
错误信息

参考