我的Android应用使用Android Facebook SDK的LoginManager
和AccessToken
类。我们使用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天。
有关失效日期没有改变的任何想法?任何帮助都将非常感激。
答案 0 :(得分:1)
警告在文档中有细则:
延长到期日期,如果可以扩展
不再提供仅仅希望延长到期时间来扩展访问令牌。请参阅此处:https://developers.facebook.com/docs/facebook-login/access-tokens/refreshing'刷新'功能现在只是刷新权限。当然,有这种令人费解的注意事项
这些令牌每天刷新一次,最多90天 使用您的应用程序的人向Facebook的服务器发出请求。
我认为如果应用执行其中一个图形API请求,那么到期时间可能会延长至最多90天。