ホームページ > バックエンド開発 > PHPチュートリアル > QQインターネットのコードの書き方を教えてください。

QQインターネットのコードの書き方を教えてください。

WBOY
リリース: 2016-06-13 12:34:41
オリジナル
864 人が閲覧しました

QQ Internet のコードはどのように記述しますか? ?

<?php <br />
  //应用的APPID<br />
  $app_id = "xxxxx";<br />
  //应用的APPKEY<br />
  $app_secret = "xxxxxxx";<br />
  //成功授权后的回调地址<br />
  $my_url = "http://www.abc.com";<br />
 <br />
  //Step1:获取Authorization Code<br />
  session_start();<br />
  $code = $_REQUEST["code"];<br />
  if(empty($code)) <br />
  {<br />
     //state参数用于防止CSRF攻击,成功授权后回调时会原样带回<br />
     $_SESSION['state'] = md5(uniqid(rand(), TRUE)); <br />
     //拼接URL     <br />
     $dialog_url = "https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=" <br />
        . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state="<br />
        . $_SESSION['state'];<br />
     echo("<script> top.location.href='" . $dialog_url . "'</script>");<br />
  }<br />
 <br />
  //Step2:通过Authorization Code获取Access Token<br />
  if($_REQUEST['state'] == $_SESSION['state']) <br />
  {<br />
     //拼接URL   <br />
     $token_url = "https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&"<br />
     . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)<br />
     . "&client_secret=" . $app_secret . "&code=" . $code;<br />
     $response = file_get_contents($token_url);<br />
     if (strpos($response, "callback") !== false)<br />
     {<br />
        $lpos = strpos($response, "(");<br />
        $rpos = strrpos($response, ")");<br />
        $response  = substr($response, $lpos + 1, $rpos - $lpos -1);<br />
        $msg = json_decode($response);<br />
        if (isset($msg->error))<br />
        {<br />
           echo "<h3>error:</h3>" . $msg->error;<br />
           echo "<h3>msg  :</h3>" . $msg->error_description;<br />
           exit;<br />
        }<br />
     }<br />
 <br />
     //Step3:使用Access Token来获取用户的OpenID<br />
     $params = array();<br />
     parse_str($response, $params);<br />
     $graph_url = "https://graph.qq.com/oauth2.0/me?access_token=".$params['access_token'];<br />
     $str  = file_get_contents($graph_url);<br />
     if (strpos($str, "callback") !== false)<br />
     {<br />
        $lpos = strpos($str, "(");<br />
        $rpos = strrpos($str, ")");<br />
        $str  = substr($str, $lpos + 1, $rpos - $lpos -1);<br />
     }<br />
     $user = json_decode($str);<br />
     if (isset($user->error))<br />
     {<br />
        echo "<h3>error:</h3>" . $user->error;<br />
        echo "<h3>msg  :</h3>" . $user->error_description;<br />
        exit;<br />
     }<br />
     echo("Hello " . $user->openid);<br />
  }<br />
  else <br />
  {<br />
     echo("The state does not match. You may be a victim of CSRF.");<br />
  }<br />
?>
ログイン後にコピー

これは公式ウェブサイトから入手したコードです
まず Web サイト上のハイパーリンクをクリックし、次にこの php ファイルに移動します。
雲の中、霧がかかっていて、混乱している

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート