我正在使用Facebook Javascript SDK http://developers.facebook.com/docs/reference/javascript/來驗證和批准我的Facebook應用程序。 我的SDK代碼如下:在JavaScript SDK中處理Facebook訪問令牌失效
window.fbAsyncInit = function()
{
FB.init({
appId : 'MY_APP_ID',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
oauth : true
});
FB.login(function(response)
{
if (response.authResponse)
{
var userFBAccessToken = response.authResponse.accessToken;
console.log('userFBAccessToken: ' + userFBAccessToken);
FB.api('/me', function(response)
{
console.log('Good to see you, ' + response.name + '.');
FB.logout(function(response) {
console.log('Logged out.');
});
});
} else {
console.log('User cancelled login or did not fully authorize.');
}
}, {scope: 'user_activities,user_notes,user_photos,user_videos,user_status,offline_access'});
};
// Load the SDK Asynchronously
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
我很困惑與offline_access棄用。我的問題是在這裏,如果我啓用「棄用離線訪問」選項,在我的應用程序高級設置頁面:
將是什麼這是我從response.authResponse.accessToken獲得訪問令牌的到期時間。無論是2小時還是60天? (現在和2012年5月1日之後的持續時間是多少)
如果只有2小時,我怎麼能延長到60天?
檢索到的訪問令牌只有在用戶處於在線狀態時纔有效,或即使在脫機狀態下也是有效的?
謝謝。
任何人都可以請回答上述問題嗎?謝謝。 – Venkat 2012-04-13 11:19:26
儘管有答案,但我仍對此有點困惑。看起來像javascript sdk需要你做服務器端,因爲它需要應用程序的祕密。當你這樣做並將它返回給客戶端後,你如何「堅持下去」(讓瀏覽器在下次調用FB.init時知道新的訪問權限)?另外,iOS sdk會自動擴展它。怎麼樣?任何時候您都不會將應用程序祕密提供給iOS SDK。 Facebook如何可靠地知道這是一個iOS設備? – 2012-05-02 19:28:19