ユーザ用ツール

サイト用ツール


facebook_sdk

以前のリビジョンの文書です


v3.23.0 - Feb 5, 2015 現在 — 宗 昂志 2015/02/18 15:08

Session状態を見て処理をハンドリング

何らかの処理を行う前に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);
  
  /**
  * 認証処理 
  * ここでSDKの認証処理が走ります。
  * FBアプリが入っているならばアプリが起動。
  * 入っていなければモーダルのダイアログが起動。
  */
  /**
  * 認証が終わった際に続けて投稿処理を行う場合、フラグを持たせておき
  * onSessionStateChangeでSessionStateを見て投稿処理を行う。
  * (ここはもうちょっと良い方法がありそう…)
  */

   Session状態が変化したときに投稿処理を行うフラグ mDoPost = true; }

facebook_sdk.1424265670.txt.gz · 最終更新: 2015/02/18 22:21 by sou