前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Typecho评论头像隐藏QQ号

Typecho评论头像隐藏QQ号

作者头像
qiangzai
发布2021-12-21 08:55:54
8680
发布2021-12-21 08:55:54
举报
文章被收录于专栏:强仔博客

因为腾讯留的头像接口有很多,大部分都是需要传入QQ参数,例如:http//q.qlogo.cn/g?b=qq&nk=qq&s=100这个接口,需要跟QQ参数才能显示QQ头像,这样会暴露用户隐私

061701
061701

那么为了安全和隐私,我们需要隐藏这些,腾讯也留了几个不会暴露QQ的接口 比如https://s.p.qq.com/pub/get_face?img_type=3&uin=QQ号会直接返回QQ头像

061702
061702

还有一个QQ互联里面的一个接口 https://ptlogin2.qq.com/getface?appid=1&imgtype=1&uin= QQ号 相比上一个而言这个返回的是json数据,后面即为QQ头像直链

061703
061703

那么我们只需要处理一下评论头像输出过程就好了,咱也用试了好几种方法,图片显示但就是图像不显示跳转后的链接,还是能留下参数信息, 就比如 <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"

烦死人,所以,我他妈直接问 柯少 要后台

代码语言:javascript
复制
$(document).ready(function(){$(".galleryidpost").lightGallery({selector: ".yoniu-index-img",share: false,share: false,showThumbByDefault: false,autoplayControls: false});});

修改过程

在主题的function.php中添加以下函数

代码语言:javascript
复制
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.'?';
    }
}
061704
061704

然后在评论的位置的头像修改为<?php echo Authorimg($comments->mail); ?>

061705
061705

刷新 f12查看,成功。

061706
061706

可能你会发现,改完页面加载非常的卡, 开桑 也和我说了几种方法,但都有个请求函数或多或少都有点小卡,所以综合考虑下,我还是放弃吧

简单修改一下

代码语言:javascript
复制
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;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-06-175,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 修改过程
  • 简单修改一下
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档