我要瘋了,Facebook的access_tokens在PHP和JS不同?
我不明白如何處理令牌的事情。我使用php sdk進行web登錄。這工作,我可以
$facebook->api('/me');
從用戶等
的數據,但還是很短的時間我得到的* FB錯誤後:
OAuthException: An active access token must be used to query information about the current user.
即使用戶仍然登錄。當我斷開並再次登錄facebook時,我沒有得到新的令牌(我認爲是因爲cookie仍然活動?)
當我刪除一段時間內運行的所有Cookie。
但當我檢查回來JS SDK
FB.getLoginStatus(function(response){FB.api('/me', function(response) {});});
我一直有一個積極的和的access_token在它我可以調用API,但僅限於...
爲什麼我不能用同樣的道理在PHP和JS或爲什麼他們不同?
請幫幫我。
編輯
解釋它更好。在php中,access_token從例如'CDAtEg'等'148234'等(不知道爲什麼)。如果我在PHP中執行api請求,我得到了OAuthException,但在js SDK中,舊的Token'CDAtEg'仍然是活動的,並且我得到了user_data,直到令牌被執行。
爲什麼我不能再次在php中使用相同的標記,爲什麼它被刪除?我找不到原因。
EDIT 2
謝謝你的想法而已。我現在發現了兩件事。首先,當我保存我從JS SDK獲得的令牌時,使用它與
$facebook->setAccessToken()
它似乎工作到目前爲止。其次,由於phwd在下面發佈,我從php獲得的user_access標記在2,3分鐘後被刪除。我怎樣才能找到這個問題的根源?
經過一段時間...他們應該持續兩個小時!你收到代幣時是否檢查過期? –
我做的兩個API調用同時在PHP中我得到一個令牌錯誤在JS不是,即使我使用相同的標記。所以它沒有過期。 –
https://developers.facebook.com/roadmap/offline-access-removal/ – CBroe