我刚刚意识到我没有获得有关访问令牌的到期日期的任何更多信息。我正在谈论用于android的facebook SDK,我用authorize()
回调调用DialogListener
方法,如下面的代码所示。
我已经好几个星期都没看过它了,我知道它之前有效,现在当我回到项目时,我发现facebook.getAccessExpires()
每次都返回0的呼叫。
我的第一个想法是API可能会被破坏并且应用了一些我没有注意到的更改。然而,使用大约相同年龄的iPhone项目似乎会收到到期日期。 (从我可以看到的,我缺乏客观的技能^^)。
接下来我从facebook's github检查了提交5a72863793521a96f5a9f4fb72960a27b98e441d
因为我这次开始实施支持FB并且这样想我可能会看到SDK是否以某种戏剧性的方式发生了变化。
到目前为止,我所有的努力都是徒劳的,我无法想出在哪里追踪这个错误的好理由。
DialogListener dialogListener = new DialogListener(){
@Override
public void onComplete(Bundle values) {
mPrefsEdit.putString(USER_ACCESS_TOKEN, facebook.getAccessToken() )
.putLong(USER_ACCESS_EXPIR, facebook.getAccessExpires() )
.commit();
}
//other required overrides
}
Facebook facebook = new Facebook(APP_ID);
facebook.authorize(activity, APP_PERMISSIONS, Facebook.FORCE_DIALOG_AUTH, dialogListener);
答案 0 :(得分:0)
facebook停止提供offline access token permission
的访问权限。因此访问令牌在非常有用的时间(2-8小时)内有效。有关详细信息,请参阅facebook blog。
这是facebook.getAccessExpires()
总是返回0的主要原因。