ParseのAndroidStudioでの使い方(後編)
ParseのAndroidStudioでの使い方(前編) - hello_world.py
昨日の続きをまとめます。自分用のメモです。
Facebook連携のログイン
こことかを見ながらkeyやIDを発行。
Getting Started
Applicationクラスに以下を追加する。AppIDは発行されたランダム文字列
ParseFacebookUtils.initialize("AppID");
LoginActivityを以下のようにする。
public class LoginActivity extends Activity { private Button loginButton; private Dialog progressDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); loginButton = (Button) findViewById(R.id.facebook_log_in_button); loginButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.i(Application.TAG, "Login button をクリックしました。"); onLoginButtonClicked(); } }); //現在facebookログイン中かどうかで条件分岐 ParseUser currentUser = ParseUser.getCurrentUser(); if ((currentUser != null) && ParseFacebookUtils.isLinked(currentUser)) { // 次のアクティビティへ NextActivity(); } ParseAnalytics.trackAppOpened(getIntent()); } private void onLoginButtonClicked() { LoginActivity.this.progressDialog = ProgressDialog.show( LoginActivity.this, "", "", true); List<String> permissions = Arrays.asList("","",""); ParseFacebookUtils.logIn(permissions, this, new LogInCallback() { @Override public void done(ParseUser user, ParseException err) { LoginActivity.this.progressDialog.dismiss(); if (user == null) { Log.i(Application.TAG, "Facebook ログインをキャンセルしました。"); } else if (user.isNew()) { Log.i(Application.TAG, "Facebookでログインしました!"); NextActivity(); } else { Log.i(Application.TAG, "Facebookでログインしました!"); NextActivity(); } } }); } /** *Facebookアプリをインストールしていないユーザーのために、「シングルサインオン」を提供 */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); ParseFacebookUtils.finishAuthentication(requestCode, resultCode, data); } private void showHomeListActivity() { Intent intent = new Intent(this, NextActivity.class); startActivity(intent); //戻れないように、スクリーン閉じる finish(); }
あえて公式サイトに載ってないような感じで書いたのですが、もっと効率良く、使いやすくできそうなのでいろいろ今後試します。いまはとりあえずこんな感じ。
次はSNS使わず、emailとかでのログイン機能です。
ログイン機能
ログイン機能の実装について。
以下をLogInActivityに加えることでログイン。Exceptionまたはuser==nullの場合には失敗です。
ParseUser.logInInBackground(name, password, new LogInCallback() { public void done(ParseUser user, ParseException e) { if (user != null) { Log.d(TAG, "Log in !"); } else { Log.e(TAG, "Error!"); } } });
ちなみにログアウトは以下を使用。
ParseUser.logOut();
メールアドレス、パスワードを使用しないログインの場合は以下を使用。
ParseAnonymousUtils.logIn(new LogInCallback() { @Override public void done(ParseUser user, ParseException e) { if (e != null) { Log.e(TAG, "Error!"); } else { Log.d(TAG, "Log in!"); } } });
他にもTwitterでもログイン実装できます。
機械学習が楽しくなってきたので、swiftとC言語のUNIXとかの勉強がほったらかしになってます。三つとも密かにもっとできるようになって、会社のめっちゃ優秀な先輩方を驚かせたいです!!
次は機械学習かけるようにがんばる!!