PHP   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php – Facebook登录错误:无法打开流:HTTP请求失败! HTTP / 1.0 400错误请求大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图按照这个例子从 here创建一个服务器端登录到Facebook,但没有运气.在第7步中,当我尝试使用令牌交换代码并将其存储在会话中以供以后使用时,我总是会收到此错误
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();
});

任何帮助表示赞赏.谢谢你.

要直接回答这个问题,问题很可能是你没有urlencode(使URL传输安全)重定向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登录错误:无法打开流:HTTP请求失败! HTTP / 1.0 400错误请求全部内容,希望文章能够帮你解决php – Facebook登录错误:无法打开流:HTTP请求失败! HTTP / 1.0 400错误请求所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。