2011-06-10 59 views
3

我正在嘗試使用Facebook的C#包裝器。如果我認證用戶並獲得accessToken,我想存儲accessToken,以便我可以訪問我自己的個人Facebook內容(如照片等)。但是,accessToken在一段時間後失效。我怎樣才能確保它不?從Facebook保存accessToken,但它重置

回答

2

由於各種原因,用戶訪問令牌可能會失效。在大多數情況下,如果超過'expires'字段指定的時間(默認訪問令牌具有2小時生命週期),它們可能會過期。許多開發人員不知道的是,如果某個用戶更改其密碼,註銷,或者她的通過應用程序儀表板取消了該應用程序的授權,則訪問令牌也可能會過期。您的應用處理這種情況非常重要。如果您的訪問令牌到期,您需要重新獲取有效的訪問令牌。 [1]

+0

所以,如果我不能使用offline_access擴展權限,我該如何增加更多的時間到期? – 2011-06-13 18:07:20

2

如果您請求並獲得offline_access擴展權限,則您將收到一個非到期訪問令牌。即使這些未到期的離線訪問令牌可以通過emaillenin描述的一些操作(密碼更改,應用程序刪除/ de-auth)而失效

+0

因此,使用offline_access擴展權限,我應該可以使用此令牌嗎? – 2011-06-13 18:06:47

+0

是的。獲得你需要的其他許可,比如publish_stream – 2011-06-13 21:10:14

+0

爲了向任何熟悉Facebook API開發的人提供澄清,你需要在你的作用域變量中加入'offline_access'。例如。 'https://www.facebook.com/dialog/oauth?client_id=YOUR_ID&redirect_uri=YOUR_REDIRECT&scope= 「offline_access」' – ThePower 2011-11-09 15:08:14

0

我在授權我的webapp後存儲Facebook應用程序/用戶訪問令牌。

以後,當用戶回來是考慮我的WebApp我檢查,如果在我的appDatabase這個用戶訪問令牌=中的accessToken通話用php-sdk的,像這樣:

$facebook = new Facebook($SimpleConnectConfig);  
if ($facebook->getAccessToken() == $databaseFBuserAccessToken){ 
echo '<a href="'.$facebook->getLoginUrl($appArrayPermsScope).'"> 
Link a Facebook Account 
</a>; 
}else{ 
echo '$facebook->api($user.'/permissions','DELETE');'; 
} 

去鑑定我的Facebook應用程序