Skip to content

事件订阅详述

事件订阅是系统可以将软件中的消息或其他事件(加入、退出群事件和关注、取关机器人事件)推送到你的服务器中,你的服务器可以根据对应的消息或者事件做出相应的反应。
推送是通过HTTP协议以POST请求的方式推送JSON格式的数据

使用场景

  • 你希望能对用户输入的内容做出相应反应时,比如当用户输入1+1=,你可以在服务器端收到这条消息,然后计算出结果,再通过消息发送接口告诉用户计算结果
事件名称介绍取值状态
普通消息事件普通消息message.receive.normal可用
指令消息事件指令消息message.receive.instruction可用
关注机器人事件关注机器人事件bot.followed可用
取消关注机器人事件取消关注机器人事件bot.unfollowed可用
加入群事件用户加入群事件group.join可用
退出群事件用户退出群事件group.leave可用
按钮事件消息中按钮点击事件button.report.inline可用
快捷菜单事件聊天框上方菜单按钮事件bot.shortcut.menu可用
机器人设置事件机器人设置事件bot.setting可用
A2UI机器人按钮事件A2UI机器消息中按钮点击事件a2ui.button.report可用
字段类型说明
versionstring事件内容版本号,固定为 “1.0”
headerHeader对象包括事件的基础信息
eventEvent对象包括事件的内容。注意:Event对象的结构会在不同的eventType下发生变化
字段类型说明
eventIdstring事件ID,全局唯一
eventTimeint事件产生的时间,毫秒13位时间戳
eventTypestring事件类型

一、普通消息事件 (message.receive.normal)

Section titled “一、普通消息事件 (message.receive.normal)”

用户向机器人或机器人所在的群发送普通消息时触发。

  • 用户给机器人发送私聊消息
  • 用户在机器人所在的群中发送消息

是(需在机器人后台开启”普通消息事件”订阅)

字段类型说明
senderSender对象发送者的信息
chatChat对象聊天对象信息
messageMessage对象消息内容
字段类型说明
senderIdstring发送者ID,给用户回复消息需要该字段
senderTypestring发送者用户类型,取值:user
senderUserLevelstring发送者级别,取值:owner(群主)、administrator(管理员)、member(普通成员)、unknown(未知)
senderNicknamestring发送者昵称
senderAvatarUrlstring发送者头像URL
字段类型说明
chatIdstring聊天对象ID
chatTypestring聊天对象类型,取值: bot(机器人私聊)、group(群聊)
字段类型说明
msgIdstring消息ID,全局唯一
parentIdstring引用消息时的父消息ID
sendTimeint消息发送时间,毫秒13位时间戳
chatIdstring当前聊天的对象ID
单聊消息,chatId即机器人ID
群聊消息,chatId即群ID
chatTypestring当前聊天的对象类型
group 群聊
bot 机器人
contentTypestring当前消息类型
text 文本消息
image 图片消息
markdown Markdown消息
file 文件消息
video 视频消息
audio 语音消息
html HTML消息
contentContent对象消息正文
instructionIdint指令ID(普通消息为0)
instructionNamestring指令名称(普通消息为空)
commandIdint指令ID,同instructionId
commandNamestring指令名称,同instructionName
字段类型说明
textstring消息正文
buttonsarray消息中包含的按钮列表(可选)
atarray@用户ID列表(群聊消息可选)
字段类型说明
imageUrlstring图片URL
imageNamestring图片名称
imageKeystring图片Key
imageWidthint图片宽度
imageHeightint图片高度
字段类型说明
fileNamestring文件名
fileUrlstring文件URL
fileKeystring文件Key
fileSizeint文件大小(字节)
字段类型说明
videoUrlstring视频URL
videoDurationint视频时长(秒)
字段类型说明
audioUrlstring语音URL
audioDurationint语音时长(秒)
{
"version": "1.0",
"header": {
"eventId": "abc123def456",
"eventTime": 1716000000000,
"eventType": "message.receive.normal"
},
"event": {
"sender": {
"senderId": "user_001",
"senderType": "user",
"senderUserLevel": "member",
"senderNickname": "张三",
"senderAvatarUrl": "https://example.com/avatar.png"
},
"chat": {
"chatId": "group_001",
"chatType": "group"
},
"message": {
"msgId": "msg_abc123",
"parentId": "",
"sendTime": 1716000000000,
"chatId": "group_001",
"chatType": "group",
"contentType": "text",
"content": {
"text": "你好,这是一条测试消息"
},
"instructionId": 0,
"instructionName": "",
"commandId": 0,
"commandName": ""
}
}
}
{
"version": "1.0",
"header": {
"eventId": "abc123def457",
"eventTime": 1716000001000,
"eventType": "message.receive.normal"
},
"event": {
"sender": {
"senderId": "user_001",
"senderType": "user",
"senderUserLevel": "member",
"senderNickname": "张三",
"senderAvatarUrl": "https://example.com/avatar.png"
},
"chat": {
"chatId": "bot_001",
"chatType": "bot"
},
"message": {
"msgId": "msg_abc124",
"parentId": "",
"sendTime": 1716000001000,
"chatId": "bot_001",
"chatType": "bot",
"contentType": "image",
"content": {
"imageUrl": "https://example.com/image.webp",
"imageName": "photo.jpg",
"imageKey": "key_abc123",
"imageWidth": 1920,
"imageHeight": 1080
},
"instructionId": 0,
"instructionName": "",
"commandId": 0,
"commandName": ""
}
}
}

二、指令消息事件 (message.receive.instruction)

Section titled “二、指令消息事件 (message.receive.instruction)”

用户发送带有指令的消息时触发。

  • 用户发送的消息匹配了机器人配置的指令规则

是(需在机器人后台开启”指令消息事件”订阅)

与普通消息事件相同,但 instructionIdinstructionName 字段有值。

{
"version": "1.0",
"header": {
"eventId": "abc123def458",
"eventTime": 1716000002000,
"eventType": "message.receive.instruction"
},
"event": {
"sender": {
"senderId": "user_001",
"senderType": "user",
"senderUserLevel": "member",
"senderNickname": "张三",
"senderAvatarUrl": "https://example.com/avatar.png"
},
"chat": {
"chatId": "group_001",
"chatType": "group"
},
"message": {
"msgId": "msg_abc125",
"parentId": "",
"sendTime": 1716000002000,
"chatId": "group_001",
"chatType": "group",
"contentType": "text",
"content": {
"text": "/help"
},
"instructionId": 1,
"instructionName": "help",
"commandId": 1,
"commandName": "help"
}
}
}

三、关注机器人事件 (bot.followed)

Section titled “三、关注机器人事件 (bot.followed)”

用户关注(添加好友)机器人时触发。

  • 用户主动关注机器人
  • 用户注册时自动关注机器人
  • 用户同意机器人的好友申请

是(需在机器人后台开启”关注机器人事件”订阅)

字段类型说明
timeint事件发生时间,毫秒13位时间戳
chatIdstring用户ID
chatTypestring聊天类型,固定为 “private”
userIdstring关注用户的ID
nicknamestring关注用户的昵称
avatarUrlstring关注用户的头像URL
{
"version": "1.0",
"header": {
"eventId": "abc123def459",
"eventTime": 1716000003000,
"eventType": "bot.followed"
},
"event": {
"time": 1716000003000,
"chatId": "user_001",
"chatType": "private",
"userId": "user_001",
"nickname": "张三",
"avatarUrl": "https://example.com/avatar.png"
}
}

四、取消关注机器人事件 (bot.unfollowed)

Section titled “四、取消关注机器人事件 (bot.unfollowed)”

用户取消关注(删除好友)机器人时触发。

  • 用户主动取消关注机器人
  • 用户删除机器人好友

是(需在机器人后台开启”取消关注机器人事件”订阅)

字段类型说明
timeint事件发生时间,毫秒13位时间戳
chatIdstring用户ID
chatTypestring聊天类型,固定为 “private”
userIdstring取关用户的ID
nicknamestring取关用户的昵称
avatarUrlstring取关用户的头像URL
{
"version": "1.0",
"header": {
"eventId": "abc123def460",
"eventTime": 1716000004000,
"eventType": "bot.unfollowed"
},
"event": {
"time": 1716000004000,
"chatId": "user_001",
"chatType": "private",
"userId": "user_001",
"nickname": "张三",
"avatarUrl": "https://example.com/avatar.png"
}
}

用户加入群聊时触发。

  • 用户注册时自动加入群
  • 用户被邀请加入群
  • 用户通过好友申请自动加入群

是(需在机器人后台开启”加入群事件”订阅)

字段类型说明
timeint事件发生时间,毫秒13位时间戳
chatIdstring群ID
chatTypestring聊天类型,固定为 “group”
userIdstring加入用户的ID
nicknamestring加入用户的昵称
avatarUrlstring加入用户的头像URL
{
"version": "1.0",
"header": {
"eventId": "abc123def461",
"eventTime": 1716000005000,
"eventType": "group.join"
},
"event": {
"time": 1716000005000,
"chatId": "group_001",
"chatType": "group",
"userId": "user_001",
"nickname": "张三",
"avatarUrl": "https://example.com/avatar.png"
}
}

用户退出群聊时触发。

  • 用户主动退出群
  • 用户被踢出群
  • 用户删除好友自动退群
  • 机器人被移除出群

是(需在机器人后台开启”退出群事件”订阅)

字段类型说明
timeint事件发生时间,毫秒13位时间戳
chatIdstring群ID
chatTypestring聊天类型,固定为 “group”
userIdstring退出用户的ID
nicknamestring退出用户的昵称
avatarUrlstring退出用户的头像URL
{
"version": "1.0",
"header": {
"eventId": "abc123def462",
"eventTime": 1716000006000,
"eventType": "group.leave"
},
"event": {
"time": 1716000006000,
"chatId": "group_001",
"chatType": "group",
"userId": "user_001",
"nickname": "张三",
"avatarUrl": "https://example.com/avatar.png"
}
}

用户点击消息中的内联按钮时触发。

  • 用户点击消息中 actionType=3(点击汇报)的按钮

否(始终发送,无需单独订阅)

字段类型说明
timeint事件发生时间,毫秒13位时间戳
msgIdstring按钮所在消息的ID
recvIdstring接收者ID(群ID或机器人ID)
recvTypestring接收者类型,取值:group(群)、bot(机器人)
userIdstring点击按钮的用户ID
valuestring按钮配置的value值
{
"version": "1.0",
"header": {
"eventId": "abc123def463",
"eventTime": 1716000007000,
"eventType": "button.report.inline"
},
"event": {
"time": 1716000007000,
"msgId": "msg_abc123",
"recvId": "bot_001",
"recvType": "bot",
"userId": "user_001",
"value": "confirm_action"
}
}

八、快捷菜单事件 (bot.shortcut.menu)

Section titled “八、快捷菜单事件 (bot.shortcut.menu)”

用户点击机器人快捷菜单时触发。

  • 用户点击聊天框上方的机器人快捷菜单按钮

否(始终发送,无需单独订阅)

字段类型说明
botIdstring机器人ID
menuIdstring菜单ID
menuTypeint菜单类型
menuActionint菜单动作类型
chatIdstring聊天对象ID(群ID或用户ID)
chatTypestring聊天对象类型,取值:group(群)、bot(机器人)
senderTypestring发送者类型,固定为 “user”
senderIdstring点击菜单的用户ID
sendTimeint事件发生时间,毫秒13位时间戳
{
"version": "1.0",
"header": {
"eventId": "abc123def464",
"eventTime": 1716000008000,
"eventType": "bot.shortcut.menu"
},
"event": {
"botId": "bot_001",
"menuId": "menu_001",
"menuType": 1,
"menuAction": 1,
"chatId": "group_001",
"chatType": "group",
"senderType": "user",
"senderId": "user_001",
"sendTime": 1716000008000
}
}

九、A2UI表单事件 (a2ui.button.report)

Section titled “九、A2UI表单事件 (a2ui.button.report)”

用户在A2UI交互卡片中提交表单或点击操作时触发。

  • 用户在A2UI交互卡片中提交表单
  • 用户在A2UI交互卡片中点击操作按钮

否(始终发送,无需单独订阅)

字段类型说明
timeint事件发生时间,毫秒13位时间戳
msgIdstring消息ID
recvIdstring接收者ID(群ID或机器人ID)
recvTypestring接收者类型,取值:group(群)、bot(机器人)
userIdstring操作用户的ID
actionNamestring操作名称
sourceComponentIdstring来源组件ID
formContextobject表单上下文数据,键值对形式
interactionJsonstring交互数据的JSON字符串
{
"version": "1.0",
"header": {
"eventId": "abc123def465",
"eventTime": 1716000009000,
"eventType": "a2ui.button.report"
},
"event": {
"time": 1716000009000,
"msgId": "msg_abc126",
"recvId": "bot_001",
"recvType": "bot",
"userId": "user_001",
"actionName": "submit_form",
"sourceComponentId": "form_001",
"formContext": {
"name": "张三",
"phone": "13800138000",
"email": "zhangsan@example.com"
},
"interactionJson": "{\"type\":\"form\",\"version\":\"1.0\"}"
}
}

群内机器人设置被修改时触发。

  • 群管理员修改机器人在群内的设置

是(需在机器人后台开启”机器人设置事件”订阅)

字段类型说明
timeint事件发生时间,毫秒13位时间戳
chatIdstring群ID
chatTypestring聊天类型,固定为 “group”
groupIdstring群ID,同chatId
groupNamestring群名称
avatarUrlstring群头像URL
settingJsonstring机器人设置的JSON字符串
{
"version": "1.0",
"header": {
"eventId": "abc123def466",
"eventTime": 1716000010000,
"eventType": "bot.setting"
},
"event": {
"time": 1716000010000,
"chatId": "group_001",
"chatType": "group",
"groupId": "group_001",
"groupName": "测试群",
"avatarUrl": "https://example.com/group_avatar.png",
"settingJson": "{\"notifyLevel\":1,\"autoReply\":true}"
}
}

contentType值说明
text文本消息
image图片消息
markdownMarkdown消息
file文件消息
video视频消息
audio语音消息
htmlHTML消息
post文章消息
expression表情消息
form表单消息
live_video视频通话消息
live_audio语音通话消息
senderUserLevel值说明
owner群主
administrator管理员
member普通成员
unknown未知