事件
事件是由 OneBot 实现自发产生或从机器人平台获得,由 OneBot 实现向应用端推送的数据。
格式
事件应表示为一个对象(object 类型),且必须具有下面这些字段:
| 字段名 | 数据类型 | 说明 | 
|---|---|---|
id | 
string | 事件唯一标识符 | 
time | 
float64 | 事件发生时间(Unix 时间戳),单位:秒,建议优先采用聊天平台给出的时间,其次采用实现中创建事件对象的时间 | 
type | 
string | 事件类型,必须是 meta、message、notice、request 中的一个,分别表示元事件、消息事件、通知事件和请求事件 | 
detail_type | 
string | 事件详细类型 | 
sub_type | 
string | 事件子类型(详细类型的下一级类型) | 
除元事件外,其它事件类型还必须具有下面这些字段:
| 字段名 | 数据类型 | 说明 | 
|---|---|---|
self | 
self | 机器人自身标识 | 
提示
若一个数据中缺失上述任一字段或类型错误,则不应认为该数据是有效的事件。
除了上述基本字段之外,其它字段随 type 和 detail_type 的不同而不同,也允许 OneBot 实现在一定规则下扩展,具体在 接口定义 中描述。
例子
一个以 JSON 编码的事件例子如下:
{
    "id": "b6e65187-5ac0-489c-b431-53078e9d2bbb",
    "self": {
        "platform": "qq",
        "user_id": "123234"
    },
    "time": 1632847927.599013,
    "type": "message",
    "detail_type": "private",
    "sub_type": "",
    "message_id": "6283",
    "message": [
        {
            "type": "text",
            "data": {
                "text": "OneBot is not a bot"
            }
        }
    ],
    "alt_message": "OneBot is not a bot",
    "user_id": "123456788",
    "qq.nickname": "海阔天空"
}