事件订阅详述
事件订阅是系统可以将软件中的消息或其他事件(加入、退出群事件和关注、取关机器人事件)推送到你的服务器中,你的服务器可以根据对应的消息或者事件做出相应的反应。 推送是通过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 | 可用 |
消息事件
数据内容
| 字段 | 类型 | 说明 |
|---|---|---|
| version | string | 事件内容版本号 |
| header | Header对象 | 包括事件的基础信息 |
| event | Event对象 | 包括事件的内容。注意:Event对象的结构会在不同的eventType下发生变化 |
Header对象
| 字段 | 类型 | 说明 |
|---|---|---|
| eventId | string | 事件ID,全局唯一 |
| eventTime | int | 事件产生的时间,毫秒13位时间戳 |
| eventType | string | 事件类型 |
Event对象
| 字段 | 类型 | 说明 |
|---|---|---|
| sender | Sender对象 | 发送者的信息 |
| message | Message对象 | 消息内容 |
Sender对象
| 字段 | 类型 | 说明 |
|---|---|---|
| senderId | string | 发送者ID,给用户回复消息需要该字段 |
| senderType | string | 发送者用户类型,取值:user |
| senderUserLevel | string | 发送者级别,取值:owner、administrator、member、unknown |
| senderNickname | string | 发送者昵称 |
Chat对象
| 字段 | 类型 | 说明 |
|---|---|---|
| chatId | string | 聊天对象ID |
| chatType | string | 聊天对象类型,取值: bot、group |
Message对象
| 字段 | 类型 | 说明 |
|---|---|---|
| msgId | string | 消息ID,全局唯一 |
| parentId | string | 引用消息时的父消息ID |
| sendTime | int | 消息发送时间,毫秒13位时间戳 |
| chatId | string | 当前聊天的对象ID 单聊消息,chatId即对方用户ID 群聊消息,chatId即群ID 机器人消息,chatId即机器人ID |
| chatType | string | 当前聊天的对象类型 group 群聊 bot 机器人 |
| contentType | string | 当前消息类型 text 文本消息 image 图片消息 markdown Markdown消息 file 文件消息 |
| content | Content对象 | 消息正文 |
| commandId | int | 指令ID,可用来区分用户发送的指令 |
| commandName | string | 指令名称,可用来区分用户发送的指令 |
事件JSON结构体示例
json
{
"version": "1.0",
"header": {
"eventId": "f10b35f5ea3b46968eeb44a858c1e0e9",
"eventType": "message.receive.normal",
"eventTime": 1761936492340
},
"event": {
"sender": {
"senderId": "7756242",
"senderType": "user",
"senderUserLevel": "owner",
"senderNickname": "小学不在这里哦"
},
"chat": {
"chatId": "307149245",
"chatType": "group"
},
"message": {
"msgId": "2a50d66c747f4d119fe49fa531390e93",
"parentId": "",
"sendTime": 1761936492319,
"chatId": "307149245",
"chatType": "group",
"contentType": "text",
"content": {
"text": "你好啊,第一次在这里发言",
"menu": {
"": "北京"
}
},
"instructionId": 0,
"instructionName": "",
"commandId": 0,
"commandName": ""
}
}
}json
{
"version": "1.0",
"header": {
"eventId": "6853aad18d0045ab8f05d89e3fb4c35b",
"eventType": "message.receive.instruction",
"eventTime": 1761936520039
},
"event": {
"sender": {
"senderId": "7756242",
"senderType": "user",
"senderUserLevel": "owner",
"senderNickname": "小学不在这里哦"
},
"chat": {
"chatId": "307149245",
"chatType": "group"
},
"message": {
"msgId": "7bc20ab6113948c487e19c9394cd22ee",
"parentId": "",
"sendTime": 1761936520009,
"chatId": "307149245",
"chatType": "group",
"contentType": "text",
"content": {
"text": "这是普通指令的默认文字",
"menu": {}
},
"instructionId": 2104,
"instructionName": "这是普通指令",
"commandId": 2104,
"commandName": "这是普通指令"
}
}
}json
{
"version": "1.0",
"header": {
"eventId": "87d128d3404048ada4e1004e4998f495",
"eventType": "group.join",
"eventTime": 1761936093582
},
"event": {
"time": 1761936093347,
"chatId": "307149245",
"chatType": "group",
"userId": "4827368",
"nickname": "小小学?",
"avatarUrl": "https://chat-storage1.jwznb.com/a0068c6770fe2df08d1923287bb9cdbf.jpg?sign=b5a523cca7ce43349e483c706b0fc50d&t=690510ed"
}
}json
{
"version": "1.0",
"header": {
"eventId": "b9e4effa6f3e492e8f0af9582d196ede",
"eventType": "group.leave",
"eventTime": 1761935761230
},
"event": {
"time": 1761935761198,
"chatId": "307149245",
"chatType": "group",
"userId": "4827368",
"nickname": "小小学?",
"avatarUrl": "https://chat-storage1.jwznb.com/a0068c6770fe2df08d1923287bb9cdbf.jpg?sign=1c3e223f5a39cc7bb3720eb4946664fd&t=69050fa1"
}
}json
{
"version": "1.0",
"header": {
"eventId": "8e3c15c090894cedb5df2032daf6839f",
"eventType": "bot.followed",
"eventTime": 1761936136441
},
"event": {
"time": 1761936136291,
"chatId": "37090343",
"chatType": "bot",
"userId": "4827368",
"nickname": "小小学?",
"avatarUrl": "https://chat-storage1.jwznb.com/a0068c6770fe2df08d1923287bb9cdbf.jpg?sign=479a3fc9b52f670fbaf8f389c4753afe&t=69051118"
}
}json
{
"version": "1.0",
"header": {
"eventId": "3650dec0bc7b43c1b615145f80ca4634",
"eventType": "bot.unfollowed",
"eventTime": 1761936347220
},
"event": {
"time": 1761936347111,
"chatId": "37090343",
"chatType": "bot",
"userId": "4827368",
"nickname": "小小学?",
"avatarUrl": "https://chat-storage1.jwznb.com/a0068c6770fe2df08d1923287bb9cdbf.jpg?sign=22f03dfca81db75490589dcd186920b3&t=690511eb"
}
}json
{
"version": "1.0",
"header": {
"eventId": "2c3c14181f0a4e59aef0308b272df071",
"eventType": "bot.shortcut.menu",
"eventTime": 1761936125985
},
"event": {
"botId": "37090343",
"menuId": "MNM1L2YC",
"menuType": 1,
"menuAction": 1,
"chatId": "307149245",
"chatType": "group",
"senderType": "user",
"senderId": "4827368",
"sendTime": 1761936125
}
}json
{
"version": "1.0",
"header": {
"eventId": "f6e70610f8934d56afc31185b5aed6fa",
"eventType": "button.report.inline",
"eventTime": 1761936422152
},
"event": {
"time": 1761936422147,
"msgId": "a412dd8074c0467f99c3f8f411af269a",
"recvId": "307149245",
"recvType": "group",
"userId": "4827368",
"value": "action按钮"
}
}