Facebook Android SDK:AccessToken.refreshCurrentAccessTokenAsync()不延长到期日期

时间:2017-12-07 22:03:31

标签: android facebook facebook-android-sdk facebook-access-token

我的Android应用使用Android Facebook SDK的LoginManagerAccessToken类。我们使用LoginManager.getInstance().logInWithReadPermissions()初步将Facebook帐户链接到我们的服务。这种方法很好,没有问题。

我们遇到的问题是当我们尝试在我们的应用启动时刷新Facebook访问令牌(在后台你可以说)。为此,我们使用AccessToken.refreshCurrentAccessTokenAsync()Facebook's docs表示它扩展了访问令牌的到期时间。我会注意到,在这种情况下提供的回调确实触发了OnTokenRefreshed()方法,因此它至少看起来正在运行。但是,在检查(从我们的后端服务)后,我们可以看到,自调用refreshCurrentAccessTokenAsync以来,该访问令牌的到期日期尚未延长。

这是一个片段:

if (AccessToken.getCurrentAccessToken() == null)
{
    return;
}

AccessToken.refreshCurrentAccessTokenAsync(new AccessToken.AccessTokenRefreshCallback()
{
    @Override
    public void OnTokenRefreshed(AccessToken accessToken)
    {
        Log.d(TAG, "OnTokenRefreshed >> " + accessToken);
    }

    @Override
    public void OnTokenRefreshFailed(FacebookException exception)
    {
        Log.w(TAG, "OnTokenRefreshFailed >> " + exception.getClass().getSimpleName() + ": " + exception.getMessage(), exception);
    }
});

但是,我再次提到我们在后端注意到,到期日期仍然设置为从最初使用FacebookManager.getInstance().loginWithReadPermissions()链接起约60天。

有关失效日期没有改变的任何想法?任何帮助都将非常感激。

1 个答案:

答案 0 :(得分:1)

警告在文档中有细则:

  

延长到期日期,如果可以扩展

不再提供仅仅希望延长到期时间来扩展访问令牌。请参阅此处:https://developers.facebook.com/docs/facebook-login/access-tokens/refreshing'刷新'功能现在只是刷新权限。当然,有这种令人费解的注意事项

  

这些令牌每天刷新一次,最多90天   使用您的应用程序的人向Facebook的服务器发出请求。

我认为如果应用执行其中一个图形API请求,那么到期时间可能会延长至最多90天。