我試圖按照示例創建一個從here到Facebook的服務器端登錄,但沒有運氣。在第7步,當我嘗試用輔幣代碼並將其存儲在供以後使用會話,我總是得到這樣的錯誤:Facebook登錄錯誤:無法打開流:HTTP請求失敗! HTTP/1.0 400錯誤請求
file_get_contents(): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request
我知道這已經問了很多次,但我仍然無法解決這個問題,根據this question,我嘗試使用cURL,但它仍然不起作用,它只是返回false。
Other question告訴我使用PHP SDK,但我不知道使用哪種方法。所以我完全迷失在這裏。
這裏是我的調用登錄表單代碼:
<a href="<?php echo LOGIN_URL; ?> ?>" class="btn btn-primary">Login with Facebook</a>
其中LOGIN_URL被定義爲:
define("LOGIN_URL", $facebook->getLoginUrl(array("redirect_uri" => APP_URL . "fb_login")));
在fb_login
,我有這樣的代碼:
$app->get("/fb_login", function() use($app, $facebook)
{
$code = $_REQUEST["code"];
$token_url = "https://graph.facebook.com/oauth/access_token?"
. "client_id=" . APP_ID . "&redirect_uri=" . APP_URL . $_SESSION["request_uri"] // Previous URL
. "&client_secret=" . APP_SECRET . "&code=" . $code;
$response = file_get_contents($token_url); // Doesn't work
$params = null;
parse_str($response, $params);
$_SESSION["access_token"] = $params["access_token"];
// Let's try with cURL...
// $ch = curl_init();
// curl_setopt($ch, CURLOPT_URL, $token_url);
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// $output = curl_exec($ch); // Returns false
// curl_close($ch);
$graph_url = "https://graph.facebook.com/me?access_token="
. $params["access_token"];
$user = json_decode(file_get_contents($graph_url));
echo("Hello " . $user->name);
var_dump($code); die();
});
任何幫助表示讚賞。以前感謝。
您可以粘貼'$ token_url'的全部值,以便在追加所有不同的變量後可以看到變量的最終值? –
_你自己的任何調試工作...? – CBroe
我遇到同樣的問題 –