Facebookでログイン済みかどうかをチェックし、Facebook SDKのログイン画面を表示する
おなじみのログイン画面
Facebookでログイン済みかどうかをチェック
(他にいい方法があるかもしれませんが)
private boolean checkLogin() { AccessToken accessToken = AccessToken.getCurrentAccessToken(); return accessToken != null; }
private CallbackManager mCallbackManager; private void login() { mCallbackManager = CallbackManager.Factory.create(); LoginManager.getInstance().registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { //ログイン成功 } @Override public void onCancel() { //キャンセル } @Override public void onError(FacebookException exception) { //ログイン失敗 } }); LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("email", "public_profile", "user_friends")); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); mCallbackManager.onActivityResult(requestCode, resultCode, data); }
CallbackManagerを使用するとおなじみのログイン画面が表示できます。
ログイン結果をコールバックで受け取るためにはonActivityResultの処理が必須となります。
Arrays.asList("email", "public_profile", "user_friends"));
となっている箇所にはアプリで必要とする権限を指定します。developers.facebook.com
権限は"email", "public_profile", "user_friends"以外はFacebookのDeveloper Consoleから申請する必要があります。