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 リクエストを行う前にそうしないようにするか、アクティビティがセッションが有効かどうかを確認するために少なくとも 1 回呼び出します。
セッションが有効かどうかを確認する通常の方法はありますか?