2013-10-17 48 views
0

我試圖找出一種方式來重新導向到用戶與權限交互(接受或拒絕無關緊要)後應用程序的Facebook頁面。接受/拒絕權限後重定向回Facebook應用循環

我試過並閱讀了redirect_uri(facebook sdk,php)並使用它。問題是,當用戶完成與應用程序權限的交互時,我不明白如何重定向ONCE。

if(!empty($signedRequest) && !empty($signedRequest['page']['id'])){ 
$page = $facebook->api($signedRequest['page']); 
} 
else 
{ 
echo '<script>top.location.href = "'.$loginUrl.'"</script>'; 
} 
//$redirect_uri = $page['link'] . '?sk=app_' . $facebook->getAppId() .'?ref=ts'; 

$redirect_uri = "my_facebook_page_where_app_is"; 

$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'publish_actions', 
'redirect_uri' => $redirect_uri 
)); 

這個工作,當然重定向。但它循環.....永遠。 我無法得到如何重定向一次的概念。任何幫助?

+0

爲什麼您將決定重定向到signed_request上的登錄對話框? – CBroe

+0

那是這個問題。我無法確定何時重定向到應用程序頁面。所以我現在把它放在那裏,只是爲了顯示我的問題。 – MentalRay

+0

那麼你可以只是把一個GET參數放到'redirect_uri'中...如果設置了這個,意味着用戶已經從登錄對話框重定向回來,對它做出反應... – CBroe

回答

0
if(isset($_REQUEST['signed_request'])) 
{ 
    // User has already authorised your app 
} 
else 
{ 
    header('Location:'.$redirect_uri); 
} 
+0

這是不正確的。在頁面選項卡應用程序中,無論用戶是否已授權您的應用程序,您都會在首次​​加載時將signed_request發佈到您的應用程序。 – CBroe

+0

那你能幫忙嗎?解決最初的問題?因爲有了這段代碼,我可以做到。 – MentalRay