一文搞懂:如何通过 QQ 号 / QQ 邮箱获取 QQ 头像

不需要登录、不需要 API 密钥,一个地址就能拿到任何 QQ 号的头像。


一、QQ 头像的官方公开接口

腾讯其实开放了一个非常稳定的公开接口,只需要知道 QQ 号就能拼出头像地址:

https://q1.qlogo.cn/g?b=qq&nk=QQ号&s=尺寸

参数说明:

参数 含义 示例
nk 目标 QQ 号 12345678
s 头像尺寸(px) 40100140640
b 固定值 qq(表示 QQ 头像)

举个例子:

如果 QQ 号是 12345678,那么它的头像地址是:

尺寸 直链
40px https://q1.qlogo.cn/g?b=qq&nk=12345678&s=40
100px https://q1.qlogo.cn/g?b=qq&nk=12345678&s=100
140px https://q1.qlogo.cn/g?b=qq&nk=12345678&s=140
640px(高清) https://q1.qlogo.cn/g?b=qq&nk=12345678&s=640

直接把链接粘贴到浏览器地址栏就能看到头像,也支持在 <img> 标签里直接使用。


二、从 QQ 邮箱反推 QQ 号

很多时候我们手里只有 QQ 邮箱,不知道 QQ 号。但其实 QQ 邮箱本身就是 QQ 号 + @qq.com

12345678@qq.com
  ↑↑↑↑↑↑↑↑  ← 这一串就是 QQ 号

所以流程很简单:

QQ邮箱 → 取 @ 前面的部分 → 拼接 qlogo.cn 链接 → 得到头像

代码实现(JavaScript)

function getQQAvatarByEmail(email) {
  // 1. 基础格式校验
  if (!/@/.test(email)) return null;

  // 2. 拆分用户名和域名
  const [username, domain] = email.split('@');

  // 3. 判断是否为 QQ 邮箱
  if (domain.toLowerCase() !== 'qq.com' && domain.toLowerCase() !== 'foxmail.com') {
    return null; // 非 QQ 邮箱,无法通过此接口获取
  }

  // 4. QQ号长度通常为 5~11 位
  if (username.length < 5 || username.length > 11) return null;

  // 5. 拼接头像地址
  return {
    qq: username,
    avatar40:  `https://q1.qlogo.cn/g?b=qq&nk=${username}&s=40`,
    avatar100: `https://q1.qlogo.cn/g?b=qq&nk=${username}&s=100`,
    avatar140: `https://q1.qlogo.cn/g?b=qq&nk=${username}&s=140`,
    avatar640: `https://q1.qlogo.cn/g?b=qq&nk=${username}&s=640`,
  };
}

三、有哪些实际用途?

这个接口虽然简单,但实际场景不少:

3.1 社交类应用的头像展示

如果你的网站 / 小程序需要用户绑定 QQ 邮箱用于通知,可以自动展示 QQ 头像作为用户默认头像,省去用户手动上传的麻烦。

很多早期社区论坛(Discuz!、PHPWind)就是靠这个接口显示用户头像的。

3.2 博客评论区的头像回填

基于邮箱的评论系统(如 Gravatar 的思路),输入 QQ 邮箱时自动匹配 QQ 头像,评论区立刻变得有辨识度。

3.3 内部工具的身份标识

公司内部系统通常用邮箱登录,如果员工用了 QQ 邮箱,可以直接展示头像,方便快速识别同事。

3.4 批量获取 / 头像收集

通过已知的 QQ 号列表,可以批量生成头像地址,用于数据分析、用户画像等场景。

3.5 客服系统的快捷操作

客服拿到用户 QQ 邮箱后,一键查看头像确认身份,比翻资料页快得多。


四、注意事项

注意点 说明
隐私边界 头像虽然公开,但仅用于合理场景。不要爬取、滥用、侵犯他人隐私。
未设置头像 如果对方从未设置过 QQ 头像,接口会返回腾讯默认头像(企鹅图案)。
接口稳定性 q1.qlogo.cn 是腾讯的 CDN 域名,稳定性很高,但不排除未来 URL 变动的可能性。
尺寸上限 s=640 是目前能获取到最大分辨率,不代表源文件就是 640px。
跨域 该接口支持浏览器直接加载,无 CORS 限制,可在前端直接使用。
/

五、小结

一个 URL 就能解决的问题,没必要依赖第三方 SDK。

核心逻辑就三步:

输入 QQ 号 / QQ邮箱 → 取 QQ号 → 拼 https://q1.qlogo.cn/g?b=qq&nk=QQ号&s=640

简单、稳定、无需鉴权,十年前就是这个 API,十年后大概率还是它。

QQ头像获取

输入 QQ 号或 QQ 邮箱,自动生成各尺寸头像直链

QQ邮箱:

QQ号:

头像预览

头像预览

非QQ邮箱:

使用默认系统头像

头像预览

默认头像
请输入有效的 QQ 号或 QQ 邮箱