因为腾讯留的头像接口有很多,大部分都是需要传入QQ参数,例如:http//q.qlogo.cn/g?b=qq&nk=qq&s=100这个接口,需要跟QQ参数才能显示QQ头像,这样会暴露用户隐私
那么为了安全和隐私,我们需要隐藏这些,腾讯也留了几个不会暴露QQ的接口 比如https://s.p.qq.com/pub/get_face?img_type=3&uin=QQ号会直接返回QQ头像
还有一个QQ互联里面的一个接口 https://ptlogin2.qq.com/getface?appid=1&imgtype=1&uin= QQ号 相比上一个而言这个返回的是json数据,后面即为QQ头像直链
那么我们只需要处理一下评论头像输出过程就好了,咱也用试了好几种方法,图片显示但就是图像不显示跳转后的链接,还是能留下参数信息, 就比如 <img class="uk-border-circle" src="https://s.p.qq.com/pub/get_face?img_type=3&uin=1724417279" src不应该跳成这样么 src="http://thirdqq.qlogo.cn/g?b=sdk&k=33t19Vyq45B8tuI0llEa1w&s=100&t=1623673005"
烦死人,所以,我他妈直接问 柯少 要后台
$(document).ready(function(){$(".galleryidpost").lightGallery({selector: ".yoniu-index-img",share: false,share: false,showThumbByDefault: false,autoplayControls: false});});
在主题的function.php中添加以下函数
function Authorimg($email){
$a='gravatar.q6q.cc/avatar';//gravatar头像源
$b=str_replace('@qq.com','',$email);
if(stristr($email,'@qq.com')&&is_numeric($b)&&strlen($b)<11&&strlen($b)>4){
$nk = 'https://s.p.qq.com/pub/get_face?img_type=3&uin='.$b;
$c = get_headers($nk, true);
$d = $c['Location'];
$q = json_encode($d);
$k = explode("&k=",$q)[1];
echo 'https://q.qlogo.cn/g?b=qq&k='.$k.'&s=100';
}else{
$email= md5($email);
echo 'https://'.$a.'/'.$email.'?';
}
}
然后在评论的位置的头像修改为<?php echo Authorimg($comments->mail); ?>
刷新 f12查看,成功。
可能你会发现,改完页面加载非常的卡, 开桑 也和我说了几种方法,但都有个请求函数或多或少都有点小卡,所以综合考虑下,我还是放弃吧
public static function getGravatar($email)
{
$b=str_replace('@qq.com','',$email);
if(stristr($email,'@qq.com')&&is_numeric($b)&&strlen($b)<11&&strlen($b)>4){
$nk = 'https://s.p.qq.com/pub/get_face?img_type=3&uin='.$b;
$c = get_headers($nk, true);
$d = $c['Location'];
$q = json_encode($d);
$k = explode("&k=",$q)[1];
$avatar = 'https://thirdqq.qlogo.cn/g?b=sdk&k='.$k.'&s=640';
}else{
$email= md5($email);
$avatar = 'https://gravatar.q6q.cc/avatar/'.$email;
}
return $avatar;
}