LoginSignup
2
1

More than 1 year has passed since last update.

ニフクラ mobile backendのAndroid SDKでGoogle認証を試す - 準備編

Last updated at Posted at 2015-06-29

ニフクラ mobile backend (NCMB) エバンジェリストの小山(koyhoge)です。

先日6月15日、NCMBの機能に「Google認証」が追加されました。iOSとAndroid用のSDKもそれぞれ、Google認証に対応するため同日アップデートが行われています。

機能追加のお知らせ

これまでSDKの機能として、ユーザーを認証する方式としては

  • 独自アカウント
  • Twitter連携
  • Facebook連携

がサポートされていましたが、今回これに追加してGoogle認証が使えるようになったわけです。ユーザにとって、各サービスそれぞれにアカウント名とパスワードを登録するのは面倒な作業であるという見方もあります。普段より SNS を使用している人にとっては、その SNS の認証基盤を使ってサービスにログインできれば、余分なパスワードを覚えておく必要が減るわけで、サービスの特性によってはユーザのメリットを大きく高めることになるでしょう。

6月15日にリリースされたAndroid用SDKバージョン1.5でGoogle認証のサポートが追加され、その後6月22日にFacebook認証のバグを修正したバージョン1.5.1がリリースされています。

SDKの変更履歴 (Android)

この記事では新機能のGoogle認証を実現するアプリをゼロから作成してみます。

今回の記事は2部構成になっていて、この記事は実際にプログラムを作成するまでの準備を行う「準備編」です。後半は「開発編」になります。

参考になるページは以下です。

準備編

まずはアプリをのコードを書く前に様々な準備が必要なのです。複数のサービスが連携して動作する関係で、あちらで取得した値をこちらで入力してなんてこともありますし、省略するとかえって分かりにくいように思えたので、ざっと全部やってみましょう。この辺のことはすでに分かってるぜーという方は開発編に飛んでしまって構いません。

アプリのパッケージ名を決める

ご存知のように Android アプリには一意のパッケージ名を持っています。Google認証を使うためにはどのアプリに許可するのかを決めるためにパッケージ名を使用するので、まずパッケージ名を決めなければいけません。ただAndroidアプリを作る場合は必ずパッケージ名は決めるものなので、深く考えずにサクッと決めてしまいましょう。

今回つくるアプリは

  • org.koyhoge.ncmbgauth

にしました。

アプリの署名証明書のフィンガープリントを得ておく

これまたご存知のように Android アプリをリリースする際には証明書で署名しなければいけません。この後で説明する「Android用クライアントID」を取得するためには、この証明書のフィンガープリントが必要です。証明書ファイルに対して keytool コマンドを実行することでフィンガープリントを表示することができます。今回はアプリをリリースするつもりはなく手元で動かすだけなので、Android Studio がインストールされる際に自動的に生成される、デバッグビルド用の証明書をつかってフィンガープリントを得ることにしましょう。

デバッグビルド用の証明書は、自分のホームディレクトリの .android/debug.keystore にあります。表示する際にパスワードを聞かれますが、これは「android」に設定されています。

Signing Your Applications | Android Developers

こんな感じでフィンガープリントを表示します。

shell
$ keytool -list -keystore ~/.android/debug.keystore
キーストアのパスワードを入力してください:

キーストアのタイプ: JKS
キーストア・プロバイダ: SUN

キーストアには1エントリが含まれます

androiddebugkey,2015/05/02, PrivateKeyEntry,
証明書のフィンガプリント(SHA1): XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX

一般に公開するアプリの場合は、自分で証明書を作成してサインをすることになりますので、その証明書ファイルに対してフィンガープリントを取得してください。

ここで得たフィンガープリントは、クライアントIDを取得するときに使うのでメモしておきます。

Google Developers Consoleでプロジェクトを作る

これから Google Developers Console で色々と作業をしますが、その最終目的は「AndroidアプリのクライアントID」を取得することです。ここ重要!

まず Google Developers Console サイトに行きます。

Googleアカウントでログインすると以下の画面になります。

001.png

「プロジェクトを作成」ボタンを押して、新しいプロジェクトを作ります。プロジェクト名は「NCMB Google Auth Example」としました。
002.png

プロジェクト選択ボタンでプロジェクトを開きます。
003.png

無事にプロジェクトが作成されると、プロジェクトダッシュボード画面になります。

004.png

Google認証機能を使うには Google+ の API を許可する必要があるのでその設定をします。
まず、 API とサービス から 認証情報を選択します。その時、以下の画面が表示されます。

005.png

API の検索ボックスに「plus」と入力します。

006.png

するとAPIの候補にGoogle+が現れるのでそれを選択し、「APIを有効にする」ボタンを押して、Google+ API を有効にします。

007.png

Google+ APIを有効したら、以下の画面となります。

008.png

次に左側の「認証情報」メニューを選択します。クライアントIDは当然ながらまだありません。

009.png
010.png

OAuth 同意画面画面では 外部を選択してから作成で続きます。
011.png

次は必須な情報を入力して保存して次へで続きます。
012.png

続いてスコープを追加または削除で以下と同じな権限を選択して 保存して次へボタンをクリックします。
013.png

他のユーザーにアプリをテストする権限を与えるために+ ADD USERSボタンでクリックしてユーザーを追加します。

014.png

詳細情報は以下の画面で表示されます。ダッシュボードに戻りたい場合は ダッシュボードに戻るをクリックします。

015.png

アプリの機能を実装する設定

まずは以下のリンクにアクセスします。

Start Integrating Google Sign-In into Your Android App

すると以下の画面が現れますので、画面内の「Configure a project」ボタンを押します。

016.png

表示しているダイアログで作成したプロジェクトを選択してから、NEXTで続きます。

017.png

Configure your OAuth client の画面で Android プラットフォームを選択してPackage nameSHA-1 signing certificateを入力します。入力を完了したら、 CREATEをクリックします。

018.png

入力した情報は情報画面で表示されます。 DONE をクリックして完了します。
019.png

NCMB のコンソール画面で Google 認証を有効に

これまでの手順で取得した「Android 用クライアントID」を、NCMB の登録アプリに紐付けます。
まずは 以下のリンクから NCMB の管理コンソールにログインします。

左側メニューの「アプリ設定」からすぐ右側の「SNS連携」を選択し、画面中ほどにある「Google連携」の

  • 「Google連携の許可」を「許可する」に変更
  • 「Google Client ID」に上記で取得したクライアントIDを入力

最後に「保存する」ボタンを押して完了です。

ちょっと長かったですが、これで事前準備はすべて終了です。次の「開発編」では実際にプログラムを作ってGoogle認証を試してみましょう。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1