Facebook在本地运行时重定向循环

时间:2013-08-13 12:08:02

标签: facebook facebook-php-sdk

我正在开发一个本地Facebook项目。但是当我去localhost时,他每次都开始重定向到 localhost /?code = xxxx (xxxx是非常长的随机字符)。

我的代码是:

require_once('sdk/src/facebook.php');

$facebook = new Facebook(array(
  'appId'  => 'MY_APP_ID',
  'secret' => 'MY_APP_SECRET',
  'sharedSession' => true,
  'trustForwarded' => true,
  'cookie' => true
));

$user_id = $facebook->getUser();
if ($user_id) {
  try {
    // Fetch the viewer's basic information
    $basic = $facebook->api('/me','GET');
  } catch (FacebookApiException $e) {
    if (!$facebook->getUser()) {
      //header('Location: '. AppInfo::getUrl($_SERVER['REQUEST_URI']));
      $user_id = null;
    }
  }
}

if(!$user_id) {
    $loginUrl = $facebook->getLoginUrl(array(
    'scope' => 'email,publish_actions'
  ));

echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
      exit();
}
...

我的应用设置: http://i44.tinypic.com/25fm59j.png

提前致谢。

1 个答案:

答案 0 :(得分:1)

可能的问题是,即使用户已登录,您的应用仍会为0返回$user_id,从而导致JavaScript重定向再次发生,从而导致其永久循环。

问题的情况可能是众多问题之一,但请确保code GET变量未被.htaccess文件或其他方式从网址中删除。其次,请查看base_facebook.php文件this modification以更改code的检查方式。