WordPress 输入QQ号自动获取用户名及邮箱
再给大家分享一个好用的小功能。评论区输入QQ号自动获取用户名及邮箱,功能不大但确实有利于增加博客留言的积极性。
1. 自建API获取QQ信息
新建一个 PHP 文件,将下面代码丢进去,文件名可自取,这里以 get_qq_info.php 命名。创建完成后将 get_qq_info.php 文件丢到网站根目录下以用于以后调取,也可以将它放在任何一个目录下,只需要保证后面 JS 代码调取是路径正确即可。
<?php
header('Content-Type: text/html;charset=utf-8');
$QQ=$_GET["qq"];
if($QQ!=''){
$urlPre='http://r.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?g_tk=1518561325&uins=';
$data=file_get_contents($urlPre.$QQ);
$data=iconv("GB2312","UTF-8",$data);
$pattern = '/portraitCallBack\((.*)\)/is';
preg_match($pattern,$data,$result);
$result=$result[1];
echo $result;
}else{
echo "请输入qq号!";
}
?>
这里其实还是通过腾讯开放的接口获取到 QQ 用户的真实昵称。
2. JavaScript脚本调用API
将以下代码添加到主题的主要 JS 文件中去,如果主题支持后台自定义代码也可以直接放在后台自定义代码位置。
function fn_qqinfo(){
var qq_num=$('#qqinfo').val();
if(qq_num){
if( !isNaN(qq_num)){
$.ajax({
url:"http://您的地址/get_qq_info.php", //如果网站开启了HTTPS,记得这里要修改成https的链接
type:"get",
data:{qq:qq_num},
dataType:"json",
success:function(data){
$("#email").val(qq_num+'@qq.com');
$('#comment').focus();
if(data==null){
$("#author").val('QQ游客');
}else{
$("#author").val(data[qq_num][6]==""?'QQ游客':data[qq_num][6]);
}
},
error:function(err){
$("#author").val('QQ游客');
$("#email").val(qq_num+'@qq.com');
$('#comment').focus();
}
});
}else{
$("#author").val('你输入的好像不是QQ号码');
$("#email").val('你输入的好像不是QQ号码');
}
}else{
$("#author").val('请输入您的QQ号');
$("#email").val('请输入您的QQ号');
}
}
注意:如果网站开启 HTTPS 的话将上述代码中链接改为对应的 https 格式。
3. 前端显示代码
将以下代码添加到你主题的 comments.php 文件中:
<input class="您主题的对应样式" type="text" name="qqinfo" id="qqinfo" maxlength="12" value="" tabindex="5" placeholder="输入QQ号快速填写信息" onblur="fn_qqinfo()" /><span class="您主题的对应样式" >Q Q(选填)</span>
4. 具体效果见本博客留言区
也欢迎大家踊跃留言。




14 条评论
2broear ( VIP 6 )
这个 urlPre 还能返回qq昵称,真不错!
Jakehu ( VIP 6 )
还有个好玩的小功能,我的博客右下角新加入了一个随便看看的按钮,每次点击都随机打开一篇文章,找到配图后也发出来。
2broear ( VIP 6 )
这玩意得php拉文件名不,js搞不起
QQ游客 ( VIP 1 )
感觉还不错
微_凉丶 ( VIP 1 )
test测
_ ( VIP 1 )
测试
头像貌似没获取到
Jakehu ( VIP 6 )
嗯,只可以获取到用户名和邮箱地址
若志奕鑫 ( VIP 2 )
那填写邮箱获取头像有木有相关教程
Jakehu ( VIP 6 )
http://q1.qlogo.cn/g?b=qq&nk=QQ号码&s=640 这是获取QQ头像的API 可自行添加的 。
若志奕鑫 ( VIP 2 )
就是填写评论信息的时候
Jakehu ( VIP 6 )
毕竟大部分博客还要考虑Gravatar头像,您也可以参考这个 https://www.jakehu.cn/599.html
若志奕鑫 ( VIP 2 )
跟着上面操作,没搞明白为啥获取不到昵称
QQ游客 ( VIP 1 )
咋所有人昵称都是QQ游客?
QQ游客 ( VIP 1 )