你應該如何處理前一段時間登錄Facebook的人。來到你的網站,你應該繼續鏈接(因爲你發現他們已經登錄到Facebook),然後在頁面上,你指示他們給你這個錯誤。Facebook PHP SDK - OAuthException - OAuth2
Fatal error: Uncaught OAuthException: An active access token must be used to query information about the current user. thrown in /var/www/html/lib/base_facebook.php on line 1039
我不明白,你應該如何避免這種情況?這是否與你回到Facebook獲得access_token的簽名信息有關?看起來像這個簽名的信息可以過期(它有一個issued_at日期)。在您的網站流程中處理這個問題的正確方法是什麼?
你希望像這樣寫代碼:
<?php
$user = $facebook->getUser();
try {
// attempt to do a call just to see if you are going to have this issue
$profile = $facebook->api('/me');
} catch (Exception $e) {
$user = false;
}
if ($user) { ?>
<a href="start.php">Begin</a>
<?php } else { ?>
<fb:login-button scope="email" size="large">Connect</fb:login-button>
<?php } ?>
取而代之的是:
<?php
$user = $facebook->getUser();
if ($user) { ?>
<a href="start.php">Begin</a>
<?php } else { ?>
<fb:login-button scope="email" size="large">Connect</fb:login-button>
<?php } ?>
獲取$用戶從Facebook的SDK回似乎只告訴你有一個cookie。而不是,如果這將實際上工作,當你去做API調用。
UPDATE: 所以我用這種方法唯一的問題是什麼?當用戶確實對我的網站的cookie,但是API調用失敗 - 我告訴他們Connect按鈕。用戶點擊連接按鈕,它很快出現並消失。因爲它不是真正的'auth.login',所以用戶不會通過JavaScript重定向發送到我的start.php頁面。別人如何處理這個問題?我很難過。請告訴我,我是如何嘗試這樣做的,還有其他缺陷。
是否檢查該域名,APP_ID和app_secret是在這兩個網站(您檢查FB用戶的一個存在,並在其上重定向一個)一樣嗎?並且用於在第一個網站上初始化Facebook對象的域應該是更高級別的域,然後是下一個網站。 – 2011-12-23 21:36:52
這些都在同一個網站上。成功登錄後,我想將我的用戶從/(或index.php)重定向到start.php – BuddyJoe 2011-12-25 17:50:00