转换为语音并朗读全文 00:00 / 00:00

大家应该在本博工具箱那里看见了,有一个“获取QQ信息”的链接,那么这个是怎么实现的呢?下面麦葱就开始告诉大家方法。

按理说要获取到QQ用户的资料,应该从腾讯开放平台通过验证appid获取,但是这样稍微有点麻烦。

为了简单好用,麦葱教大家一个快捷方法:

读取QQ空间的一条JSON数据:http://base.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?uins=766464159

大家点开上面这个链接,可以看到里面是一串JSON数据,怎么读取出来呢?麦葱在这里提供两个方法,一个是用PHP读取,一个是用JQ读取。

使用前,请确保你的服务器支持下面代码中用到的所有函数。

提示:

http://base.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?uins={qq} 接口无效了

请改用 http://r.qzone.qq.com/cgi-bin/user/cgi_personal_card?uin={qq}

出现403状态码可使用此方法获取数据:

https://github.com/maicong/OpenAPI/blob/master/curl_get.php


php方法:

<?php
header("Content-Type:text/html;charset=utf-8");  /* 定义编码为utf-8 */
$qqnum = "766464159";  /* 定义QQ号为766464159 */
$qqget = file_get_contents("http://base.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?uins=$qqnum");  /* 获取JSON数据 */
$qqstr = iconv("gb2312","utf-8//IGNORE",$qqget);  /* 转换编码 */
$qqstr = mb_convert_encoding($qqget,"UTF-8","GBK");  /* 转换编码 */
$json = mb_substr(trim($qqstr),17,-1,"utf-8");  /* 截取指定内容 */
$jsonstr = json_decode($json,true);  /* 转换成PHP变量  */
$keys = array_keys($jsonstr);  /* 返回所有键名 */
$qq = $keys[0];  /* 取得第一个键名 */
$nick =$jsonstr[$qq][6];  /* 取值 */
$avatar =$jsonstr[$qq][0];  /* 取值 */
echo "<p>Q Q:$qq</p>";  /* 输出 QQ:766464159 */
echo "<p>昵称:$nick</p>";  /* 输出 昵称:麦田一根葱 */
echo '<p>头像:<img src="http://img.2333.me/src/'.$avatar.'" /></p>';  /* 输出头像 */
?>

JQ方法:

<script type="text/javascript" src="http://libs.baidu.com/jquery/1.8.3/jquery.min.js"></script>  <!-- 引入JQ库-->
<script type="text/javascript">
jQuery(document).ready(function(){
var qq = "766464159";  /* 定义QQ号为766464159 */
$.ajax({  /* 使用ajax请求 */
type: "get",  /* 请求方式为GET */
url: "http://base.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?uins="+qq,  /* 发送请求的地址 */
dataType: "jsonp",   /* 返回JSONP格式 */
jsonp: "callback",    /* 重写回调函数名 */
jsonpCallback:"portraitCallBack",  /* 指定回调函数名 */
success: function(json){  /* 请求成功输出 */
for(var key in json){
alert("QQ:"+key);  /* 弹出:QQ:766464159 */
}
alert("昵称:"+json[qq][6]);  /* 弹出:昵称:麦田一根葱*/
alert("头像地址:"+json[qq][0]);  /* 弹出:头像地址:http://qlogo4.store.qq.com/qzone/766464159/766464159/100 */
},
error: function(){  /* 请求失败输出 */
alert('获取失败');
}
});
});
</script>

上面的代码麦葱已经加上注释了,有不明白的地方看看注释就知道了。

细心的朋友应该会注意到php代码输出的图像地址是img.2333.me,这是因为取得的头像地址已经被防盗链了,直接连接会显示疼讯的防盗链提示。

为此,麦葱研发了图片反盗链,只需要在防盗链的图片前面加上http://img.2333.me/src/,就可以显示原图片了!

获取QQ信息演示 图片反盗链演示

如果你觉得文章不错,可以给点小小奖励~

微信

微信

支付宝

支付宝

带符号 * 的表示必填项
  1. duoduo3691
    duoduo3691

    换个地昵称测试

    回复
  2. duoduo369
    duoduo369

    测试下这个评论系统

    回复
  3. SMALL
    SMALL

    能直接获取访客的QQ么?

    回复
  4. iDina
    iDina

    表示貌似已经失效了。。。

    回复
  5. rustemjan
    rustemjan

    请问这个具体怎么用呢?这个是那个QQ空间里的php图片类似的东西是吧。。求详细教程

    回复
  6. yy
    yy

    牛!!!

    回复
  7. 山野愚人居
    山野愚人居

    博主,能看下你那个防盗链的源码吗?谢谢啊!

    回复
    1. 麦田一根葱
      麦田一根葱博主

      哈哈,想要吗?

      回复
      1. 山野愚人居
        山野愚人居

        @麦田一根葱 想要,不知道可不可哦! :!:

        回复
  8. zhujl
    zhujl

    怎么获取QQ号尼?

    回复
    1. 麦田一根葱
      麦田一根葱博主

      代码里有注释哦

      回复