后端开发 \ PHP \ OAuth 2.0 . 第三方 登录 (新浪微博、腾讯QQ)

OAuth 2.0 . 第三方 登录 (新浪微博、腾讯QQ)

总点击55
简介:首先去QQ互联、新浪微博开放平台、申请应用成功: 注:在申请应用时 会有<metaproperty=\"qc:admins\"content=\"113133650471167627000636\"/>验证把这段代码粘贴

首先 去 QQ互联、新浪微博开放平台、 申请应用 成功:

注:在 申请应用时  会有<meta property="qc:admins" content="113133650471167627000636" /> 验证 把这段代码粘贴

到你的网站根目录默认访问的文件里的head头信息中。113133650471167627000636 为 应用序列号 每次申请应用和修改 地址等 都会发生变化 如果  不操作 这块代码 就不会检测成功 应用申请不会成功

OAuth 2.0 . 第三方 登录 (新浪微博、腾讯QQ)


新浪微博 也一样

然后 编写程序

1、腾讯QQ

index.html

[html]

view plain

copy

print?

<span style="font-size:18px;"><html>  <header>  <meta property="qc:admins" content="----序列号-----" />  </header>  <a href='https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=———你的APPID———&redirect_uri  =http://———你的网站域名———/index.php&state=test'><img src='qq.jpg'/> </a>  </html></span>  


index.php

[php]

view plain

copy

print?

//获取Authorization Code  $url ='https://graph.qq.com/oauth2.0/token?client_id=101213309'  .'&client_secret=9fbaba03a7ba86f7a08d064f4db5f11b'   .'&redirect_uri=http://taotao.com133.com/index.php'   .'&grant_type=authorization_code'   .'&code='.$_REQUEST['code'];  //访问https://graph.qq.com/oauth2.0/token,传值APPID,APPKEY,并传值到Authorization Code   $info = file_get_contents($url);//得到Access Token  //print_r($info);die;         $params = array();     parse_str($info, $params);//把接收到的字符串转化为数组  //print_r($params['access_token']);die;   $params['access_token']为接收到的token值      $url1='https://graph.qq.com/oauth2.0/me?access_token='.$params['access_token'];  $open=file_get_contents($url1);//访问https://graph.qq.com/oauth2.0/me?access_token  传值token  得到callback响应函数      print_r($open);"<br/>";      $str1 = substr($open,9,-3);//将得到的字符串截串为json格式数据        //print_r($str1);die;      $arr= json_decode($str1, true);//解析json数据,true设置可以使json数据以数组格式打印出      print_r($arr['openid']);echo "<br/>";     //$arr['openid']为openid  //die;      $url2="https://graph.qq.com/user/get_user_info?access_token=".$params['access_token']."&oauth_consumer_key=101213309&openid=".$arr['openid'];//访问https://graph.qq.com/user/get_user_info  传值token,APPID,openid  print_r($url2);    echo "<br/>";      $data=file_get_contents($url2);//抓取用户信息数据  返回json格式数据      //print_r($data);exit;      $arrrrr= json_decode($data, true);      print_r($arrrrr);die;   

2、新浪微博

[html]

view plain

copy

print?

<html xmlns:wb="http://open.weibo.com/wb">  <meta property="wb:webmaster" content="-----序列号-------" /></meta>  <script src="http://tjs.sjs.sinajs.cn/open/api/js/wb.js?appkey=------appkey------" type="text/javascript" charset="utf-8">  </script>  <script type="text/javascript">  <!--      WB2.anyWhere(function (W) {      W.widget.connectButton({          id: "wb_connect_btn",          type: '3,2',          callback: {              login: function (o) { //登录后的回调函数               alert(o);//用户的信息                   },              logout: function () { //退出后的回调函数                  alert('logout');              }          }      });  });  //-->  </script>  <div id="wb_connect_btn"></div>    </html> 


意见反馈 常见问题 官方微信 返回顶部