事件是用户需要从 OneBot 被动接收的数据,有以下几个大类:
- 消息事件,包括私聊消息、群消息等
- 通知事件,包括群成员变动、好友变动等
- 请求事件,包括加群请求、加好友请求等
- 元事件,包括 OneBot 生命周期、心跳等
在所有能够推送事件的通信方式中(HTTP POST、正向和反向 WebSocket),事件都以 JSON 格式表示。
每个事件都有 time
、self_id
和 post_type
字段,如下:
字段名 | 数据类型 | 说明 |
---|---|---|
time |
number (int64) | 事件发生的时间戳 |
self_id |
number (int64) | 收到事件的机器人 QQ 号 |
post_type |
string | 事件类型 |
其中 post_type
不同字段值表示的事件类型对应如下:
message
:消息事件notice
:通知事件request
:请求事件meta_event
:元事件
其它字段随事件类型不同而有所不同,后面将在事件列表的「事件数据」小标题下给出。
某些字段的值是一些固定的值,在表格的「可能的值」中给出,如果「可能的值」为空则表示没有固定的可能性。
如 HTTP POST 的快速操作 中所说,HTTP POST 通信方式下,用户可在服务端返回的响应中指定快速操作,事件支持的快速操作在事件列表的「快速操作」小标题下给出。
在使用正向和反向 WebSocket 的情况下,可以通过 .handle_quick_operation
API 伪造快速操作。
在后面的事件列表中,「数据类型」使用 JSON 中的名字,例如 string
、number
等。
特别地,数据类型 message
表示该字段是一个消息类型的字段。在事件数据中,message
的实际类型根据用户配置的消息格式的不同而不同,支持字符串和消息段数组两种格式;而在快速操作中,message
类型的字段允许接受字符串、消息段数组、单个消息段对象三种类型的数据。关于消息格式的更多细节请查看 消息。
配置项名称 | 默认值 | 说明 |
---|---|---|
event.message_format |
string |
事件数据中的消息格式,string 为字符串格式,array 为消息段数组格式 |
上一节 | 下一节 |
---|---|
隐藏 API | 消息事件 |