一文搞懂:如何通过 QQ 号 / QQ 邮箱获取 QQ 头像
不需要登录、不需要 API 密钥,一个地址就能拿到任何 QQ 号的头像。
一、QQ 头像的官方公开接口
腾讯其实开放了一个非常稳定的公开接口,只需要知道 QQ 号就能拼出头像地址:
https://q1.qlogo.cn/g?b=qq&nk=QQ号&s=尺寸
参数说明:
| 参数 | 含义 | 示例 |
|---|---|---|
nk |
目标 QQ 号 | 12345678 |
s |
头像尺寸(px) | 40、100、140、640 |
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号:
头像直链
40px
100px
140px
640px
头像预览
非QQ邮箱:
使用默认系统头像
默认头像链接
640px
头像预览
请输入有效的 QQ 号或 QQ 邮箱
评论交流
欢迎留下你的想法