OAUTH之QQ登录

<?php

$appid = '000000' ; //应用的APPID,修改之
$appkey = '000000' ; //此处填写应用的APPKEY,修改之

if ( ! isset ( $_GET [ 'code' ] ) ) {
     $display = $_GET [ 'display' ] ; //可以提交Display=mobile来显示手机页面,不提交显示默认页面
     $scope = $_GET [ 'scope' ] ; //提交Scope参数,来确定需要的接口类型
     if ( ! isset ( $scope ) ) { $scope =   'get_user_info' ; } //如果没有提交Scope参数,默认为get_user_info
     $redirect_uri = 'Http://'   .   $_SERVER [ HTTP_HOST ]   .   $_SERVER [ PHP_SELF ] ;
     $login_url = "https://graph.qq.com/oauth2.0/authorize?scope={$scope}&response_type=code&client_id={$appid}&redirect_uri={$redirect_uri}&display={$display}" ;
     header ( 'Location:' . $login_url ) ;
} else {
     //获取access_token
     $code = $_GET [ 'code' ] ;
     if ( empty ( $code ) ) { echo   'Error Get Authorization Code' ; exit ( ) ; }
     $url = "https://graph.qq.com/oauth2.0/token?client_id={$appid}&client_secret={$appkey}&code={$code}&redirect_uri=http://qqconnect.apps.moulingtao.com/qqconnect/get_auth.php&grant_type=authorization_code" ;
     $urldata = file_get_contents ( $url ) ;
     parse_str ( $urldata ) ;
     if ( empty ( $access_token ) ) { echo   'Error Get Access Token' ; exit ( ) ; }

     //获取OpenID
     $url = "https://graph.qq.com/oauth2.0/me?access_token={$access_token}" ;
     $urldata = file_get_contents ( $url ) ;
     $urldata = str_replace ( "callback(" , "" , $urldata ) ;
     $urldata = str_replace ( ');' , '' , $urldata ) ;
     $urldata = json_decode ( $urldata , ture ) ;
     $openid = $urldata [ 'openid' ] ;
     if ( empty ( $openid ) ) { echo   'Error Get Open ID' ; exit ( ) ; }


     //成功获取$access_token和$openid。现在可以用这两个变量获取用户资料等


     //获取用户的昵称和性别数据。头像路径什么可以根据OpenID得到。
     $url = "https://graph.qq.com/user/get_user_info?access_token={$access_token}&oauth_consumer_key={$appid}&openid={$openid}&format=json" ;
     $urldata = file_get_contents ( $url ) ;
     if ( empty ( $urldata ) ) { echo   'Error Get User Info' ; exit ( ) ; }
     $userinfo   =   json_decode ( $urldata , ture ) ;
   
       echo   'OpenID:' . $openid ;
       echo   "<br>Gender:" . $userinfo [ 'gender' ] ;
       echo   "<br>Nickname:" . $userinfo [ 'nickname' ] ;
       echo   "<br>Access_token:" . $access_token ;   
}

?>

你可能感兴趣的:(OAUTH之QQ登录)