Google Sign-In for Androidを試してみる

Android向けのGoogle Sign-In for Androidを試してみた。

Android端末に登録しているGoogleアカウントで、
Googleに自動ログインを行えるというもの。

以下をやってみただけなので、英語がわかれば以下のサイトを見るのが早いかも。
Try Sign-In for Android  |  Google Sign-In for Android  |  Google Developers

動作環境

Mac Book Pro (Mac OSX 10.11)
Android Developer 2.1

①サンプルプロジェクトを取得する

ターミナルを開いてgitでプロジェクトを取得する。

$ git clone https://github.com/googlesamples/google-services.git

Android Studioを開いて、取得したプロジェクトを開く。
上記のgoogle-services.gitは、Google Servicesの全てのサンプルが含まれているため、
google-services/android/signinを開くこと

②設定ファイルを取得する

取得したサンプルプログラムはそのままでは使用できないそう。
google-services.jsonが必要らしい。

上記リンクより、google-services.jsonを生成するようだ。
Add Google Services  |  Google Developers

順番に説明する。

f:id:ats337:20160510213235p:plain
App nameとAndroid package nameを入力して、
OCNTINUE TO Choose and configure servicesボタンを押す。

App nameとAndroid package nameはとりあえずデフォルトで作成する。

f:id:ats337:20160510213946p:plain
Google Sign-Inを選択する。
すると、下部に証明書のフィンガープリントを入力する項目が現れる。
keytoolを使用して証明書を作成する。
ターミナルを開いて以下のコマンドを実行する。

keytool -exportcert -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore

(パスワードはandroid)

上記はデバッグ用のkeystoreファイルからフィンガープリントを取得したが、
実際にアプリに組み込む際には、署名を行うkeystoreから取得する。

上記のコマンドで取得したSHA1のフィンガープリントを画面に入力すると、
ENABLE GOOGLE SIN-INボタンが押せるようになるので押す。
更にその下の
CONTINUE TO Generate configuration filesボタンを押す。

f:id:ats337:20160510215543p:plain

Download google-serivice.jsonボタンを押して、
ファイルをダウンロードする。

③設定ファイルをプロジェクトフォルダに配置する

ダウンロードしたファイルは、google-services/android/signin/app直下にコピーしておく。

④サーバのWeb Client IDを作成する

サンプルのIdTokenActivityとServerAuthCodeActivityはOAuth 2.0 Web Client IDが必要。
Client IDを作成するには以下のようにする。

Credentialページにアクセスする
Google API Console

f:id:ats337:20160512001548p:plain
作成したプロジェクトを選択して続行ボタンを押す。

f:id:ats337:20160512001758p:plain
Android client for....のところのクライアントIDをコピーする。

サンプルプロジェクトのstring.xmlファイルの

<string name="server_client_id">YOUR_SERVER_CLIENT_ID</string>

の部分にコピーしたクライアントIDを設定する。

これで準備完了。
あとはアプリを起動して動作確認!