跳转至

事件

事件是由 OneBot 实现自发产生或从机器人平台获得,由 OneBot 实现向应用端推送的数据。

格式

事件应表示为一个对象(object 类型),且必须具有下面这些字段:

字段名 数据类型 说明
id string 事件唯一标识符
time float64 事件发生时间(Unix 时间戳),单位:秒,建议优先采用聊天平台给出的时间,其次采用实现中创建事件对象的时间
type string 事件类型,必须是 metamessagenoticerequest 中的一个,分别表示元事件、消息事件、通知事件和请求事件
detail_type string 事件详细类型
sub_type string 事件子类型(详细类型的下一级类型)

除元事件外,其它事件类型还必须具有下面这些字段:

字段名 数据类型 说明
self self 机器人自身标识

提示

若一个数据中缺失上述任一字段或类型错误,则不应认为该数据是有效的事件。

除了上述基本字段之外,其它字段随 typedetail_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": "海阔天空"
}