0

按照往常一樣,FB有我拉出我的頭髮。調試授權之後,無限循環使用JavaScript SDK

我已經能夠測試我的應用程序在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(); 
} 

我讀到添加此: 如果(window.location.hash == '#=')window.location的.hash = '';但它似乎沒有做任何事情。

+0

確保您正在重定向以更正網址。即如果用戶使用http,那麼您的重定向URL使用http,並且對https使用http。 – Imran

+1

@Imran這不是問題。無論如何,在10月1日之後,所有應用都必須按照Facebook的路線圖進行https訪問。 – Ian

+0

你有沒有設法解決這個問題?下面的解決方案是否適合您? –

回答

1

我對我的最新的應用程序相同的問題。 使用< head>一節中的代碼解決了這個問題。 不要忘了將您的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; 
} 
?> 
+0

去了一下。儘快看看這個解決方案。謝謝。 – Ian