gpt4 book ai didi

php - Facebook 登录错误 : failed to open stream: HTTP request failed! HTTP/1.0 400 错误请求

转载 作者:可可西里 更新时间:2023-11-01 12:35:01 24 4
gpt4 key购买 nike

我正在尝试按照示例创建从 here 到 Facebook 的服务器端登录,但没有运气。在第 7 步中,当我尝试用 token 交换代码并将其存储在 session 中供以后使用时,我总是会收到此错误:

  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();
});

感谢任何帮助。先谢谢了。

最佳答案

要直接回答这个问题,问题很可能是您没有对重定向 URL urlencode(确保 URL 传输安全)。最快的解决方法是:

$token_url = "https://graph.facebook.com/oauth/access_token?"
. "client_id=" . APP_ID . "&redirect_uri=" . urlencode(APP_URL . $_SESSION["request_uri"])
. "&client_secret=" . APP_SECRET . "&code=" . $code;

但是,我还建议您查看 Facebook SDK,因为它会为您完成这一切。

关于php - Facebook 登录错误 : failed to open stream: HTTP request failed! HTTP/1.0 400 错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13440248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com