我遇到了PHP SDK oauth到Facebook的一些奇怪的行爲。在Firefox中,我可以登錄並允許應用程序。我被重定向到我的測試頁,在那裏輸出我的用戶ID,用戶信息等。美麗!與PHP oauth與PHP的問題
接下來,我打開Chrome或IE或Safari,登錄到Facebook後,我被重定向到同一頁面,但這一次,我沒有顯示爲登錄。沒有用戶ID,我可以驗證我登錄到Facebook。
事情變得更加怪異。我在Firefox註銷時回到Facebook,回到我的測試腳本,它仍然顯示我已登錄。即使我通過LogOutURL完全註銷。發佈$ facebook-> destroySession()後;這終於顯示我正確註銷..現在我無法用任何瀏覽器登錄。
我已驗證我有適當的訪問令牌,並注意到登錄URL中的'狀態'變量隨着我的測試頁上的每個頁面刷新而不斷變化。
任何想法?
這是我的測試代碼..明顯appid和祕密已被刪除。應用程序已創建,並且看起來正在通過Facebook工作......就像我說的,它曾經工作過一次。
<?
require_once("facebook.php");
$config = array();
$config['appId'] = 'blahblahblah';
$config['secret'] = 'blahblahblah';
$config['canvas'] = false;
$config['fbconnect'] = true;
$facebook = new Facebook($config);
var_dump($facebook);
echo '<br /><br />';
echo 'Access Token<br />';
var_dump($facebook->getAccessToken());
echo '<br /><br />';
echo 'Login Status URL<br />';
var_dump($facebook->getLoginStatusUrl());
echo '<br /><br />';
$user = $facebook->getUser();
$loginUrl = $facebook->getLoginUrl();
echo 'login URL: '.$loginUrl;
echo '<br />';
$logoutUrl = $facebook->getLogoutUrl();
echo 'logout URL: '.$logoutUrl;
echo '<br />';
$user = $facebook->getUser();
echo var_dump($user);
echo '<br />';
$user = $facebook->api('/me');
var_dump($user);
//$facebook->destroySession();
?>
我討厭Facebook的API。就這些。祝你好運。我希望你能解決它。我會期待着看。 – bozdoz
使用try/catch塊來拋出任何Facebook API錯誤。在瀏覽器控制檯或PHP error_log中很可能會出現錯誤 – phwd
根本沒有錯誤,UserID僅返回爲int(0)。我嘗試了try/catch。 $ facebook-> getUser()只是返回0.我100%登錄,我沒有通過getLoginUrl()發送登錄信息 – hanji