Skip to content

profile_operation ​

读取在线设备与状态,或修改个人资料、个性签名和机型显示。

适用协议

Android(手机 / 平板)支持全部已列出的操作;Linux QQ 支持 clients.get、status.get,不支持资料写入操作。

调用方式 ​

json
{
  "type": "action",
  "id": "profile_operation-1",
  "action": "profile_operation",
  "params": {
    "self_id": 123456789,
    "protocol_id": 0,
    "operation": "clients.get",
    "request": {}
  }
}

参数 ​

参数类型必填说明
self_idnumber是当前框架内的 QQ 号,5–10 位整数。
protocol_idnumber是账号实例的协议 ID;必须显式提供,0 是有效 ID。用 get_protocol_list 查询,不使用 client_type 替代。
operationstring是下表中的操作名。
requestobject否操作参数,默认 {};拒绝未知字段,整个请求上限 16 KiB。

返回值 ​

返回结构由 operation 决定:

operationdata
clients.get{ clients: OnlineClient[], known: boolean, updated_at?: string }
status.get{ status: number, ext_status: number }
update、signature.set、model.set{ success: true }
status.set、status.custom{ success: boolean, error_code: number, error_message?: string }
model.get{ variants: { model_show: string, need_pay: boolean }[] }

OnlineClient 字段为 app_id、device_name、device_kind、client_type、state、platform_id、new_client_type。clients.get 读取本次登录收到的设备推送快照;known: false 表示尚无快照,不能解释成没有其他设备。

注意事项 ​

写入超时或错误后应先查询实际资料状态,再决定是否重试。update 中昵称/性别先保存,随后保存 personal_note;签名阶段失败时此前资料可能已经生效。

操作参数 ​

下列字段放在 request 内,不能放到 params 顶层。

operationrequest 字段规则
clients.get无传 {} 或省略 request
status.getuser_id?: number省略或 0 时查询自身
updatenickname: string、personal_note?: string、sex?: numbernickname 为 1–256 字节;personal_note 最多 2048 字节;sex 只能为 0、1、2
signature.setlong_nick: string必须显式提供;最多 2048 字节,空字符串用于清空
status.setstatus: number、ext_status: number、battery_status: number三项均须显式提供,0 不能用省略代替
status.customface_id: number、face_type?: number、wording?: stringface_id 大于 0;face_type 默认 1;wording 默认单个空格,显式值 1–256 字节
model.getmodel?: string最多 256 字节
model.setmodel?: string、model_show: stringmodel_show 必填,两字段均最多 256 字节

例如修改签名:

json
{"self_id":123456789,"protocol_id":0,"operation":"signature.set","request":{"long_nick":"今天也要开心"}}

萌卡 · 自托管 QQ 机器人框架