facebook - 应用程序身份验证陷入无限重定向循环

标签 facebook authentication loops

我的应用程序陷入无限重定向循环,因为 $facebook->getUser();总是返回 0。我已经在 stackoverflow 和其他站点上阅读了许多关于类似问题的线程,但到目前为止还没有找到解决方案。我使用以下代码进行身份验证:

//
$facebook = new Facebook(array(
  'appId'  => APP_ID,
  'secret' => APP_SECRET,
  'cookie' => true,
));

// Get User ID
$user = $facebook->getUser();
if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}

// Login or logout url will be needed depending on current user state.
if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl(
    array (
      "scope" => "user_likes,email,user_hometown,publish_stream",
      "redirect_uri" => "https://www.facebook.com/pages/erdekelnehu/268142359907805?sk=app_175080802604575"
      ));
  die ('<script type="text/javascript">top.location.href="' . $loginUrl . '";</script>');
}

经过一些调试后,我发现从 oauth 对话框重定向后,我的应用程序没有signed_request。 $_GET、$_POST 和 $_REQUEST 都是空数组。
$facebook->getLoginUrl 返回以下网址:
https://www.facebook.com/dialog/oauth?client_id=175080802604575&redirect_uri=https%3A%2F%2Fwww.facebook.com%2Fpages%2Ferdekelnehu%2F268142359907805%3Fsk%3Dapp_175080802604575&state=3c0d5802c89e913368ea814d49792454&scope=user_likes%2Cemail%2Cuser_hometown%2Cpublish_stream

我尝试在没有 redirect_uri 参数的情况下调用 $facebook->getLoginUrl,将其留给 fb 以找出正确的返回 url:
https://www.facebook.com/dialog/oauth?client_id=175080802604575&redirect_uri=https%3A%2F%2Ferdekelne.hu%2Fdroidtv%2F&state=3c0d5802c89e913368ea814d49792454&scope=user_likes%2Cemail%2Cuser_hometown%2Cpublish_stream

这两个网址不一样,而且都不起作用。第二个 url 重定向到一个 fb 错误页面,说发生了一些错误,“我们正在努力尽快解决这个问题。”
那么它可能是一个fb错误,还是我做错了什么?任何想法都将不胜感激,因为经过 6 个小时的调试,我已经完全用完了它们。

最佳答案

刚刚遇到了类似的问题,通过将目录名称(放置应用程序的位置)中的空格更新为与 URL 兼容的字符即 %20 来修复它。它就像一个魅力。

关于facebook - 应用程序身份验证陷入无限重定向循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9327585/

相关文章:

php - Facebook 图搜索 API

java - 将 WAR 分配给 JBOSS 中的安全域

php - laravel 5.1 authlogin 那些 Controller 方法在哪里?

Javascript for 循环和 setTimeout 问题

java - volley json 数组只获取最后一个元素

javascript - 如何循环收集来自 Facebook API 请求的响应?

javascript - 为 FB.ui 的某些元素设置样式?

ruby-on-rails - 有没有人在 rails 2.3.8 中使用过 omniauth?

linux - 在循环中使用时 awk 出现索引错误

javascript - 关于JavaScript中的forEach和break/return的问题