2013-07-03 33 views
1

我的應用程序中有一個與Facebook登錄相關的小錯誤。Facebook PHP SDK在第一次刷新時不會檢測到用戶更改

一旦用戶通過本地Facebook網站更改其帳戶,並刷新頁面(使用facebook.php類)並調用$ facebook-> getUser(),它仍會返回我的用戶ID以前的用戶,並且只會在第二次刷新時更新。

我檢查了我們請求的權限以及我們過去請求的權限,似乎在這裏沒有「離線訪問權限」,因此我從可能原因的列表中刪除了它。

這從安全性和使用便利性兩方面都很重要。 我已經打過電話destroySession,我也試圖通過執行以下操作手動查殺的cookie:

setcookie('fbsr_' . FACEBOOK_APP_ID, '', time()-3600, '/', '.'.$_SERVER['SERVER_NAME']); 

有什麼能爲這種古怪的行爲的原因?可能有人請幫助我?

在此先感謝, 奧列格。頁面

完整代碼:

<?php 
header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'); 
require_once 'src/facebook.php'; 
require_once 'config/configFB.php'; 

// Create our Application instance (replace this with your appId and secret). 
$facebook = new Facebook(array(
    'appId' => FACEBOOK_APP_ID, 
    'secret' => FACEBOOK_SECRET_KEY, 
)); 


// Get User ID 
$fbUserId = $facebook->getUser(); 
echo $fbUserId;//testing the bug 
exit(1); 
?> 

重要提示:所有我使用,以測試該業務情景的用戶添加我的應用程序,所以其實,我應該有自己的訪問數據。

回答

1

你可以做一個標題重定向到同一頁面來「行動」作爲第二個重定向。更多的只是樂隊助手而不是一個合適的解決方案。雖然除非我錯誤了,如果我登錄到不同的Facebook帳戶,我將不得不重新授權您的應用程序使用該帳戶,因爲權限不會被設置。

+0

是的,您將不得不授權我的應用程序,除非您已經做得很好,這裏就是這種情況。 –

+0

因此,只需確認一下,當您在原生Facebook網站上更改帳戶時,是否必須授權應用程序? –

+0

如果您已經授權該應用程序,您可以使用$ facebook-> getUser() 至少這是應該的方式。 –

相關問題