[教程] js+php获取qq昵称及头像(转载)

PHP接口教程 3年前 (2018) Mgo
0

一、获取昵称

  1. http://users.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?uins=qq号
  1. http://r.pengyou.com/fcg-bin/cgi_get_portrait.fcg?uins=qq号

返回数据格式如下(注:返回的编码是gbk)

  1. portraitCallBack({"qq号":["http://qlogo4.store.qq.com/qzone/qq号/qq号/100",927,-1,0,0,0,"qq昵称",0]})

二、获取qq头像

  1. http://q.qlogo.cn/headimg_dl?dst_uin=qq号&spec=100
  1. http://q1.qlogo.cn/headimg_dl?dst_uin=qq号&spec=100
  1. http://q2.qlogo.cn/headimg_dl?dst_uin=qq号&spec=100
  1. http://q3.qlogo.cn/headimg_dl?dst_uin=qq号&spec=100
  1. http://q4.qlogo.cn/headimg_dl?dst_uin=qq号&spec=100

上面的5种方法都暴露了qq号,下面两种返回的数据将qq号加密了:

  1. http://ptlogin2.qq.com/getface?appid=716027402&imgtype=3&uin=qq号
  1. http://ptlogin2.qq.com/getface?appid=1006102&imgtype=3&uin=qq号

返回数据格式如下:

  1. pt.setHeader({"qq号":"http:\/\/q4.qlogo.cn\/g?b=qq&k=m1Hlmek4KOJ9ukevInNDJw&s=100&t=1483333237"});

三、js+php获取qq昵称及头像



[教程] js+php获取qq昵称及头像(转载)

注:需要引入jquery库及php环境

html和js代码如下:

  1. <dl>qq<input type="text" name="" id="qqnum" value="" /></dl>
  2. <dl>昵称<input type="text" name="" id="comname" value="" /></dl>
  3. <dl>邮箱<input type="text" name="" id="commail" value="" /></dl>
  4. <div id="avatar"></div>
  5. <script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
  6. <script>
  7. $("#qqnum").blur(function(){
  8. var qq=$("#qqnum").val();
  9. $("#commail").val(qq+"@qq.com");
  10. $.ajax({
  11. type: "get",
  12. url: "getqqinfo.php?a=getqqnickname&qq="+qq,
  13. dataType: "jsonp",
  14. jsonp: "callback",
  15. jsonpCallback: "portraitCallBack",
  16. success: function(data) {
  17. $("#comname").val(data[qq][6]);
  18. },
  19. error: function() {
  20. $("#comname").val("获取失败");
  21. }
  22. });
  23. $.ajax({
  24. type: "get",
  25. url: "getqqinfo.php?a=getqqavatar&qq="+qq,
  26. dataType: "jsonp",
  27. jsonp: "callback",
  28. jsonpCallback: "qqavatarCallBack",
  29. success: function(data) {
  30. $("#avatar").html("<img src='"+data[qq]+"'>");
  31. },
  32. error: function() {
  33. alert("获取头像失败啦");
  34. }
  35. });
  36. })
  37. //var str = "599580031@qq.com";
  38. //str = str.substr(0, str.indexOf('@'));
  39. //alert(str);
  40. </script>

getqqinfo.php文件代码如下:

  1. <?php
  2. header("content-Type: text/html; charset=Utf-8");
  3. $a = @$_GET['a'] ? $_GET['a'] : '';
  4. if(empty($a)){
  5. header("Location: ../");
  6. exit;
  7. }
  8. if($a == "getqqnickname"){
  9. $qq = isset($_GET['qq']) ? addslashes(trim($_GET['qq'])) : '';
  10. if(!empty($qq) && is_numeric($qq) && strlen($qq) > 4 && strlen($qq) < 13){
  11. $qqnickname = file_get_contents('http://users.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?uins='.$qq);
  12. if($qqnickname){
  13. $qqnickname = mb_convert_encoding($qqnickname, "UTF-8", "GBK");
  14. echo $qqnickname;
  15. }
  16. }
  17. }
  18. if($a == "getqqavatar"){
  19. $qq = isset($_GET['qq']) ? addslashes(trim($_GET['qq'])) : '';
  20. if(!empty($qq) && is_numeric($qq) && strlen($qq) > 4 && strlen($qq) < 13){
  21. $qqavatar = file_get_contents('http://ptlogin2.qq.com/getface?appid=1006102&imgtype=3&uin='.$qq);
  22. if($qqavatar){
  23. echo str_replace("pt.setHeader","qqavatarCallBack",$qqavatar);
  24. }
  25. }
  26. }
  27. ?>
版权声明:Mgo 发表于 2018-06-07 9:01:18。
转载请注明:[教程] js+php获取qq昵称及头像(转载) | 站长聚集地

暂无评论

暂无评论...