使用javascript sdk授权后调试无限循环

时间:2011-11-06 06:42:33

标签: facebook authorization facebook-javascript-sdk facebook-php-sdk

按照惯例,FB让我拔掉头发。

我已经能够在IE9中测试我的应用程序,但是在使用Firefox时,在用户授权画布应用程序后,它会进入重定向循环,将状态和代码变量添加到URL。

我正在使用带有此代码的javascript和php sdk:

$facebook = new Facebook(array(
'appId'  => $app_id,
'secret' => $application_secret,
'cookie' => true, // enable optional cookie support
));
$user = $facebook->getUser();
if(!($user))
{
echo"<script> top.location.href='" . $facebook->getLoginUrl(array('redirect_uri' 
=> $fbconfig['appBaseUrl'],
'scope' => 'manage_notifications,publish_stream,publish_actions'
)) . "'</script>";
exit();
}

我读到了添加这个: if(window.location.hash =='# = ')window.location.hash ='';但它似乎没有做任何事情。

1 个答案:

答案 0 :(得分:1)

我在最新的应用上遇到了同样的问题。 通过使用&lt;中的上述代码解决了它。头&gt;部分。 不要忘记将PHP SDK升级到最新版本。

<?
$facebook = new Facebook(array(
  'appId'  => 'XXX',
  'secret' => 'YYY',
));
$user = $facebook->getUser();
if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl(array(
    'scope' => 'user_likes'
  ));
  echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
    exit;
}
?>