Skip to content

API: get_avatar

获取用户 QQ 头像直链(Gensokyo 扩展 API)。

请求

json
{
    "action": "get_avatar",
    "params": {
        "user_id": 1234567890
    }
}
参数类型必填说明
user_idint64/string用户的虚拟 ID(OneBot 层看到的数字 ID)
group_idint64/string可选上下文,用于在同一 vUIN 有多个身份时辅助选择当前身份

返回值

json
{
    "data": {
        "message": "https://q.qlogo.cn/qqapp/987654321/ABCDEFGHIJKLMNOPQRSTUVWXYZ123456/640",
        "user_id": 1234567890
    },
    "message": "",
    "retcode": 0,
    "status": "ok",
    "echo": null
}
字段类型说明
data.messagestring头像直链 URL,格式:https://q.qlogo.cn/qqapp/{appid}/{openid}/640
data.user_idint64传入的虚拟用户 ID(原样返回)

工作原理

  1. 接收虚拟 user_id
  2. 通过 ID 映射反向查询真实的 QQ OpenID
  3. 拼接 QQ 官方头像 CDN 链接返回

nonebot2 示例

python
from nonebot import on_command
from nonebot.adapters.onebot.v11 import Bot, Event, Message

avatar = on_command("头像")

@avatar.handle()
async def _(bot: Bot, event: Event):
    result = await bot.call_api("get_avatar", user_id=event.user_id)
    avatar_url = result["message"]
    await avatar.finish(Message(f"[CQ:image,file={avatar_url}]"))

基于 MIT 协议开源发行