在制作网站的时候 有时候评论要使用到头像 那么最直接的方法就是用户输入QQ直接获取他的头像


腾讯QQ头像获取直链api:

API接口:http://q1.qlogo.cn/g?b=qq&nk=QQ号码&s=640

调用例子:http://q1.qlogo.cn/g?b=qq&nk=10001&s=640

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

于是想到了这样的QQ头像地址

https://q1.qlogo.cn/g?b=qq&k=Vjic48anMfN6ovAxw4eN94w&s=100

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

第一种方法:

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

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

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

如要调用10001的头像:

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

第二种方法:

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

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

简化下无用参数,变成

http://ptlogin2.qq.com/getface?&imgtype=1&uin=扣扣号

访问上述地址得到的json

pt.setHeader({"10001":"https://thirdqq.qlogo.cn/g?b=sdk&k=Vjic48anMfN6ovAxw4eN94w&s=40&t=1555323598"})

知道怎么获取就好处理了,上全世界最好的语言php

$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