正文
昨天群里有人問到dux主題的評論處輸入QQ號直接獲取名稱和頭像是怎么實現的,我看了一下dux主題,發現并沒有集成這個功能,倒是emlog的dux主題內置了這個功能,本來想移植過來wordpress的,但是發現emlog和wp的評論模塊不一樣,幾乎要重寫整個樣式和js才能實現,我果斷的放棄了,然后就想到了QQ空間的接口,可以直接獲取QQ頭像和名稱,下面分享給小伙伴們。
HTML代碼
在線獲取QQ用戶名和頭像$("#qqnum").blur(function() {
var qq = $("#qqnum").val();
$("#commail").val(qq + "@qq.com");
$.ajax({
type: "get",
url: "https://v1.ikxin.com/api/qqname.php?a=getqqnickname&qq=" + qq,
dataType: "jsonp",
jsonp: "callback",
jsonpCallback: "portraitCallBack",
success: function(data) {
$("#comname").val(data[qq][6]);
},
error: function() {
$("#comname").val("獲取失敗");
}
});
$.ajax({
type: "get",
url: "https://v1.ikxin.com/api/qqname.php?a=getqqavatar&qq=" + qq,
dataType: "jsonp",
jsonp: "callback",
jsonpCallback: "qqavatarCallBack",
success: function(data) {
$("#avatar").html("");
},
error: function() {
alert("獲取失敗");
}
});
})
PHP代碼<?php
header("content-Type: text/html; charset=UTF-8");
$a = @$_GET['a'] ? $_GET['a'] : '';
if(empty($a)){
header("Location: ../");
exit;
}
// 獲取QQ昵稱
if($a == "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");
echo $qqnickname;
}
}
}
// 獲取QQ頭像
if($a == "getqqavatar"){
$qq = isset($_GET['qq']) ? addslashes(trim($_GET['qq'])) : '';
if(!empty($qq) && is_numeric($qq) && strlen($qq) > 4 && strlen($qq) < 13){
$qqavatar_1 = file_get_contents('http://ptlogin2.qq.com/getface?appid=52958812&imgtype=4&uin='.$qq);
$qqavatar = str_replace('http', 'https', $qqavatar_1);
if($qqavatar){
echo str_replace('pt.setHeader', 'qqavatarCallBack', $qqavatar);
}
}
}
注意
獲取到的QQ頭像是http模式