动作请求
动作请求是应用端为了主动向 OneBot 实现请求服务而发送的数据。
格式
动作请求应表示为一个对象(object
类型),且必须具有下面这些字段:
字段名 | 数据类型 | 说明 |
---|---|---|
action |
string | 动作名称,如 send_message |
params |
map[string]any | 动作参数 |
提示
若一个数据中缺失上述任一字段或类型错误,则不应认为该数据是有效的动作请求。
除此之外,应用端可以附加以下字段:
字段名 | 数据类型 | 说明 |
---|---|---|
echo |
string | 可以用于唯一标识一个动作请求 |
当多个机器人账号共享一个 OneBot Connect 连接时,除元动作外的其它动作请求还应具有下面这些字段:
字段名 | 数据类型 | 说明 |
---|---|---|
self |
self | 机器人自身标识 |
若请求没有传入 self
,则行为由 OneBot 实现确定,其可以返回响应码 10101 Who Am I
;若请求传入的 self
所指定的机器人账号不存在,实现应返回 10102 Unknown Self
。
当 OneBot Connect 连接不共享时,除元动作外的其它动作请求也可以含有 self
字段,若 self
所指定的机器人账号不存在,实现应返回 10102 Unknown Self
。
元动作请求不需要包含 self
字段,若包含,实现可以忽略,也可以按上述逻辑处理。
例子
一个以 JSON 编码的动作请求例子如下:
{
"action": "send_message",
"params": {
"detail_type": "private",
"user_id": "123445667",
"message": [
{
"type": "text",
"data": {
"text": "嗨~"
}
}
]
},
"echo": "1234"
}