一个QQ登陆获取 access token 的问题

[ 2012-10-29 12:46:47 | 作者: admin ]
字号: | |
程序运行的结果是 access_token is empty
如果我将 token_url 直接在浏览器中输出 可以显示 access_token 为什么用 file_get_contents($token_url); 无法获取
     $token_url = "https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&"
                     . "client_id=" .$qq_appid. "&redirect_uri=" . urlencode($login_allback)
                     . "&client_secret=" .$qq_appkey. "&code=" . $_REQUEST["code"];
                //$response = get_url_contents($token_url);
$response = file_get_contents($token_url);
                if (strpos($response, "callback") !== false)
                {
                     $lpos = strpos($response, "(");
                     $rpos = strrpos($response, ")");
                     $response = substr($response, $lpos + 1, $rpos - $lpos -1);
                     $msg = json_decode($response);
                     if (isset($msg->error))
                     {
                     echo "<h3>error:</h3>" . $msg->error;
                     echo "<h3>msg :</h3>" . $msg->error_description;
                     exit;
                     }
                }
                $params = array();
                parse_str($response, $params);
echo $token_url;
echo "<br>";
echo $response;
echo "<br>";
                $access_token=$params["access_token"];
     if (empty($access_token))
     {
       exit("access_token is empty");
     }



解决办法
QQ登录OAuth2.0
接口地址是HTTPS的
需要PHP开启ssl
打开php.ini找到
 
;extension=php_openssl.dll
去掉双引号”;” ,重启web服务器即可。
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=1890

这篇日志没有评论。

此日志不可发表评论。