以前のリビジョンの文書です
v3.23.0 - Feb 5, 2015 現在 — 宗 昂志 2015/02/18 15:08
何らかの処理を行う前にSession状態を確認して、最適な処理を行う必要がありそうです。
コード例ですが、あくまで一例です。もっといい書き方がありそう…
https://developers.facebook.com/docs/reference/android/current/class/SessionState/
Session session = Session.getActiveSession(); if(session.isOpened()) { // 認証済み: OPENED / OPENED_TOKEN_UPDATE /** * 投稿処理 */ } else { // OPENING / CREATED / CREATED_TOKEN_LOADED / CLOSED_LOGIN_FAILED / CLOSED if (session.getState().equals(SessionState.CLOSED_LOGIN_FAILED) || session.getState().equals(SessionState.CLOSED)) { // 認証失敗・クローズ済み: CLOSED_LOGIN_FAILED / CLOSED // Sessionの再生成 session = new Session(this); } // リクエストの生成 Session.OpenRequest openRequest = new Session.OpenRequest(this).setCallback(callback); // emailを要求するパーミッションを設定 openRequest.setPermissions(Arrays.asList("email")); // アクティブセッションとする Session.setActiveSession(session); // 認証を要求する session.openForRead(openRequest); // Session状態が変化したときに投稿処理を行うフラグ mDoPost = true; /** * 認証処理 * onSessionStateChangeでSessionStateを見てから認証処理を行うのが良さそう。 */ }