ユーザ用ツール

サイト用ツール


facebook_sdk

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
facebook_sdk [2015/02/18 22:21]
sou [Session状態を見て処理をハンドリング]
facebook_sdk [2015/02/20 15:12] (現在)
sou [layout_main.xml]
ライン 1: ライン 1:
  ​v3.23.0 - Feb 5, 2015 現在  ​v3.23.0 - Feb 5, 2015 現在
  --- //​[[sou@mss-g.co.jp|宗 昂志]] 2015/02/18 15:08//  --- //​[[sou@mss-g.co.jp|宗 昂志]] 2015/02/18 15:08//
 +===== ログイン処理 =====
 +※SDKのダウンロートとかFacebook Devの設定は省いてます。
 +
 +以下のようなログインボタンの実装です。\\
 +こちらで使用しているボタンはSDKに組み込まれているログインボタンになります。
 +{{:​device-2015-02-19-154813.png?​nolink&​300|}}
 +
 +ログインが完了すると、以下のようにボタンが切り替わります。\\
 +SDKのボタンを使用する場合、ボタンの切り替え処理はSDKが行っているようなので、特に必要はなさそうです。\\
 +もし自分でボタンを作成したい場合は、Session状態を見ながら切り替える必要があります。\\
 +{{:​device-2015-02-19-171150.png?​nolink&​300|}}
 +
 +==== AndroidManifest.xml ====
 +permissionとmeta-dataを追加します。
 + <​uses-permission android:​name="​android.permission.INTERNET"​ />
 +
 + <​activity android:​name="​com.facebook.LoginActivity"​ />
 +         <​meta-data
 +             android:​name="​com.facebook.sdk.ApplicationId"​
 +             android:​value="​@string/​facebook_appId"​ />
 +
 +==== string.xml ====
 + <string name="​facebook_appId">​appid</​string>​
 +
 +==== activity_main.xml ====
 + <​com.facebook.widget.LoginButton
 +         android:​id="​@+id/​btn_auth"​
 +         android:​layout_width="​wrap_content"​
 +         android:​layout_height="​wrap_content"​
 +         android:​layout_gravity="​center_horizontal"​
 +         />
 +
 +==== MainActivity.java ====
 +
 +    public class MainActivity extends Activity {
 +    ​
 +        private final static String TAG = MainActivity.class.getSimpleName();​
 +    ​
 +        private UiLifecycleHelper uiHelper;
 +    ​
 +        private Session.StatusCallback callback = new Session.StatusCallback() {
 +            @Override
 +            public void call(Session session, SessionState state, Exception exception) {
 +                onSessionStateChange(session,​ state, exception);
 +            }
 +        };
 +    ​
 +    ​
 +        @Override
 +        protected void onCreate(Bundle savedInstanceState) {
 +            super.onCreate(savedInstanceState);​
 +            setContentView(R.layout.activity_main);​
 +    ​
 +            uiHelper = new UiLifecycleHelper(this,​ callback);
 +            uiHelper.onCreate(savedInstanceState);​
 +    ​
 +            // ログインボタン(認証ボタン)
 +            LoginButton authButton = (LoginButton) findViewById(R.id.btn_auth);​
 +            authButton.setPublishPermissions(Arrays.asList("​publish_actions"​));​
 +        }
 +    ​
 +        private void onSessionStateChange(Session session, SessionState state, Exception exception) {
 +            if (state.isOpened()) {
 +            } else if (state.isClosed()) {
 +            }
 +        }
 +    ​
 +        @Override
 +        public void onResume() {
 +            super.onResume();​
 +            uiHelper.onResume();​
 +            Session session = Session.getActiveSession();​
 +            Log.d("​Session state:",​ ""​+session.getState());​
 +        }
 +    ​
 +        @Override
 +        public void onActivityResult(int requestCode,​ int resultCode, Intent data) {
 +            super.onActivityResult(requestCode,​ resultCode, data);
 +            uiHelper.onActivityResult(requestCode,​ resultCode, data);
 +        }
 +    ​
 +        @Override
 +        public void onPause() {
 +            super.onPause();​
 +            uiHelper.onPause();​
 +        }
 +    ​
 +        @Override
 +        public void onDestroy() {
 +            super.onDestroy();​
 +            uiHelper.onDestroy();​
 +        }
 +    ​
 +        @Override
 +        public void onSaveInstanceState(Bundle outState) {
 +            super.onSaveInstanceState(outState);​
 +            uiHelper.onSaveInstanceState(outState);​
 +        }
 +    }
 ===== Session状態を見て処理をハンドリング ===== ===== Session状態を見て処理をハンドリング =====
  
ライン 38: ライン 137:
     * 入っていなければモーダルのダイアログが起動。     * 入っていなければモーダルのダイアログが起動。
     */     */
 +  ​
     /**     /**
     * 認証が終わった際に続けて投稿処理を行う場合、フラグを持たせておき     * 認証が終わった際に続けて投稿処理を行う場合、フラグを持たせておき
ライン 44: ライン 143:
     * (ここはもうちょっと良い方法がありそう…)     * (ここはもうちょっと良い方法がありそう…)
     */     */
-  // Session状態が変化したときに投稿処理を行うフラグ+    ​// Session状態が変化したときに投稿処理を行うフラグ
     mDoPost = true;      mDoPost = true; 
 +    ​
   }   }
facebook_sdk.1424265670.txt.gz · 最終更新: 2015/02/18 22:21 by sou