WordPress評論自動填寫QQ郵箱與昵稱這個功能很雞肋呀,以至于我雖然留了位置,但沒寫功能。不過最近有人問了這個事,還是寫篇教程出來吧。功能實現主要是通過騰訊的查詢接口實現的,不過在2018年7月的時候出現了一次接口失效的情況,現在大部分獲取昵稱的接口都是用的QQ空間的,至于郵箱,直接在QQ號后面加上@qq.com就行了。
先把下面的接口保存為PHP文件,放在你的網站中,確保能被訪問,之所以寫成接口是為了避免跨域請求。
<?php
header("content-Type:application/json; charset=utf-8");
$type = @$_GET['type'] ? $_GET['type'] : '';
if(empty($type)){ exit; }
if($type == "getqqnickname"){
$qq = isset($_GET['qq']) ? addslashes(trim($_GET['qq'])) : '';
if(!empty($qq) && is_numeric($qq) && strlen($qq) > 4 && strlen($qq) < 13){
$qqnickname = file_get_contents('http://users.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?uins='.$qq);
if($qqnickname){
$qqnickname = mb_convert_encoding($qqnickname, "UTF-8", "GBK"); $str=explode(",",$qqnickname); $s=str_replace('"','', $str[6]); print_r(json_encode(array("nicek"=>$s)));
}
}
}
if($type == "getqqavatar"){
$qq = isset($_GET['qq']) ? addslashes(trim($_GET['qq'])) : '';
if(!empty($qq) && is_numeric($qq) && strlen($qq) > 4 && strlen($qq) < 13){
$qqavatar = file_get_contents('http://ptlogin2.qq.com/getface?appid=1006102&imgtype=3&uin='.$qq);
if($qqavatar){
$str= str_replace("pt.setHeader","qqavatarCallBack",$qqavatar);
echo substr($str,17,strlen($str)-18);
}
}
}上面的接口中我只取了昵稱這個數據,如果你需要頭像鏈接也可以取出來,至于怎么取數據我就不多說了,方法多種多樣,看自己喜好。需要注意的是頭像也是QQ空間的頭像。當然你也可以通過后面的接口取頭像,這個就是QQ的頭像。
然后在你的主題全局加載的js中寫上下面的js代碼。注意jquery選擇器選擇的HTML標簽,根據你自己的改一下。
$("#comt-qq").blur(function() {
var curValue = $("#comt-qq").val();
if ($.trim(curValue) == "") {
//空值
} else {
$("#email").val(curValue + "@qq.com");
getQQnic(curValue);
}
});
function getQQnic(num) {
$.get("你的接口文件地址(就是上面的代碼保存的文件).php?type=getqqnickname&qq=" + num, function(data) {
$("#author").val(data.nicek);
});
}只要沒有語法問題,應該就可以看到效果了,填完QQ號之后,點擊其它區域,取消掉輸入QQ號的編輯框的焦點就會自動查詢并填寫相關資料。有的人需要把QQ號也存到評論信息里,不知道想干嘛,完全沒有意義。當然要實現也很簡單,使用wordpress的函數給評論增加一個字段,然后在評論提交處將評論數據中傳來的QQ號一起提交就好了。






