胖蒜

分享有价值的资源

获取QQ头像且不暴露QQ号码

由于Gravatar头像总是无法访问,所以增加QQ头像来补充是个好方法,而正好腾讯有接口。

【腾讯QQ头像获取直链】
API接口:http://q1.qlogo.cn/g?b=qq&nk=QQ号码&s=640
调用例子:http://q1.qlogo.cn/g?b=qq&nk=190014322&s=640

【QQ高清头像】
http://q.qlogo.cn/headimg_dl?dst_uin=QQ号码&spec=640&img_type=jpg

【QQ昵称】
http://users.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?uins=QQ号码

【头像尺寸】

s/specPX
140 x 40
240 x 40
3100 x 100
4140 x 140
5640 x 640
4040 x 40
100100 x 100

但是这样会暴露QQ号码,懂点代码的直接查看图片地址,就把QQ暴露了,这样对用户隐私不好。

于是想到了这样的QQ头像地址:
https://q1.qlogo.cn/g?b=qq&k=0n5AZ9Ne4h3em8iboKu3sHg&s=100

上面的地址,中没有QQ号,却获取了某人的qq头像,里面的重要参数就是K的值,那么如何获取K值呢?

访问下面的地址就能得到一个json:

http://ptlogin2.qq.com/getface?appid=101382166&imgtype=1&encrytype=0&devtype=0&keytpye=0&uin=QQ号码&r=0.17780657206333406

简化下无用参数,变成:
http://ptlogin2.qq.com/getface?&imgtype=1&uin=QQ号码

访问上述地址得到的json:
pt.setHeader({"QQ号":"http://q3.qlogo.cn/g?b=qq&k=对应的K值&s=40&t=1483323281"});

$qq = '你的QQ号码';
$geturl = 'http://ptlogin2.qq.com/getface?&imgtype=1&uin='.$qq;
$qquser = file_get_contents($geturl);
$str1 = explode('&k=', $qquser);
$str2 = explode('&s=', $str1[1]);
$k = $str2[0];
$qqimg = 'https://q1.qlogo.cn/g?b=qq&k='.$k.'&s=100';
echo $qqimg;

获取QQ头像不暴露QQ接口直接调用

https://s.p.qq.com/pub/get_face?img_type=3&uin=QQ

将上面的QQ 换成要调用的QQ 参数即可。

本文属原创,转载请注明原文:https://pangsuan.com/p/qq_getface.html

感觉很棒,欢迎点赞 OR 打赏~

分享到:

评论 (0)

立即登录评论
马上咨询 在线工单