我正在尝试检查 facebook 会话是否有效,这可能是因为:
- 会话已过期。
- 用户已注销。
- 用户已删除我的 Facebook 应用程序。
- 用户不再存在。
我有这种方法来检查用户是否仍然登录:
public boolean isLoggedIn() {
Session session = Session.getActiveSession();
if (session != null && session.isOpened()) {
return true;
} else {
return false;
}
}
但即使用户从他的 Facebook 帐户中删除了我的应用程序,它也会返回 true。
当我调用任何 facebook 请求时,我会从 facebook 收到以下响应:
08-14 12:20:40.671: I/facebookActivity(2322): Result: {Response: responseCode: 400, graphObject: null, error: {HttpStatus: 400, errorCode: 190, errorType: OAuthException, errorMessage: Error validating access token: User 343343434 has not authorized application 45345345.}, isFromCache:false}
之后,我向 facebook 提出的每个请求都会得到不同的响应:
08-14 12:21:09.707: I/facebookActivity(2322): Result: {Response: responseCode: 200, graphObject: null, error: {HttpStatus: -1, errorCode: -1, errorType: null, errorMessage: null}, isFromCache:false}
我可以检查 JSON 是否有错误并尝试创建一个新的 Facebook 会话,但我想避免在发出任何 Facebook 请求之前这样做,或者在活动开始检查会话是否有效时至少调用一次。
是否有正常的方法来检查会话是否有效?