在Javascript SDK中处理Facebook访问令牌到期

时间:2012-04-12 10:09:29

标签: facebook facebook-graph-api facebook-javascript-sdk

我正在使用Facebook Javascript SDK http://developers.facebook.com/docs/reference/javascript/来验证和批准我的Facebook应用。 我的SDK代码如下:

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弃用感到困惑。如果我在App Advanced设置页面中启用了“弃用离线访问”选项,那么我的问题是:

  1. 我从response.authResponse.accessToken收到的访问令牌的到期时间是什么。无论是2小时还是60天? (现在和2012年5月1日之后的持续时间)

  2. 如果只有2个小时,我怎样才能延长到60天?

  3. 检索到的访问令牌只有在用户在线时才有效,或者即使在离线时也有效?

  4. 谢谢。

1 个答案:

答案 0 :(得分:1)

1 + 2。到期时间为2小时。您需要在它过期后对其进行扩展。此处在“客户端OAuth和通过新端点扩展Access_Token到期时间”下解释了扩展请求: https://developers.facebook.com/roadmap/offline-access-removal/

  1. 应始终有效。