js+php 获取 qq 昵称及头像

  • A+
所属分类:有趣源码

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

  1. http://users.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?uins=qq 号
  2. 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
  2. http://q1.qlogo.cn/headimg_dl?dst_uin=qq 号&spec=100
  3. http://q2.qlogo.cn/headimg_dl?dst_uin=qq 号&spec=100
  4. http://q3.qlogo.cn/headimg_dl?dst_uin=qq 号&spec=100
  5. 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 号
  2. 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"})

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(emptyempty($a)){
  5. ????????????header("Location:?../");
  6. ????????????exit;
  7. ????}
  8. ????if($a?==?"getqqnickname"){
  9. ????????????$qq?=?isset($_GET['qq'])???addslashes(trim($_GET['qq']))?:?'';
  10. ????????????if(!emptyempty($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(!emptyempty($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. ?????>

点我下载源码? 密码: i4jm

历史上的今天:

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: