Gmail、Google Maps、YouTube、Google DriveなどをAPIとして活用する際に必要となるGoogle OAuthの作り方と、Androidアプリを例にした使い方を解説する。
グーグルは検索サービスをはじめとしたさまざまなサービスを提供しています。一般的に知られているサービスとしてはGmail、Google Maps、YouTube、Google+、Google Drive、Google Calendarなどがありますが、それ以外にも100種類ものサービスを提供しています。そして、それらサービスでAPIが提供され、開発者が任意の機能を自身のアプリに組み込むことが可能になります。
例えば、グーグルが提供するブログサービスBloggerも、goo.glで開始するURL短縮サービスもAPIを提供しています。
今回はそれらAPIを利用するために必要なGoogle OAuthの設定方法とサンプルアプリを通じて認証方法とAPIの利用方法を解説します。
今回のサンプルアプリは以下よりダウンロードしてください。
今回、サービス利用例として使用するのはGoogle DriveとGoogle+です。利用するサービスAPIの種類を問わず認証方法は同じなので、必要に応じて利用したいサービスの実装を追加してみてください。
グーグルのサービスを利用するAPIは、2015年7月現在、2種類存在します。
例えばGoogle Driveだと、「com.google.api.services.drive」を利用するAPIと、「com.google.android.gms.drive」を利用するAPIです。前者は従来のAPI、後者は新しいAPIのようです。新しいAPIは、Android Studioからプロジェクトを作成する際のテンプレートで生成され、Android公式ドキュメントでもスニペットで解説されたり、Google公式のサンプルも提供されたりするため、今後はこちらを利用するのが望ましいのかもしれませんが、筆者の環境では動作確認が取れなかったため、今回は実績のある従来のAPIを利用することにします。
なお、グーグルのサービスを利用するAPIは、Android用だけではなくRESTやiOS用も提供されているものがあります。マルチプラットフォームで提供するアプリの場合、そのサービスをどのAPIで利用するか、事前に検討しておくことをお勧めします。
Googleサービスを利用するには、Google Developer Consoleにプロジェクト登録と設定が必要です。まずはGoogle Developer Consoleを開いてください。
「プロジェクトを作成」をクリックして、新しいプロジェクトを作成します。プロジェクト名はここでは「Google OAuth Sample」とします。
「作成」をクリックすると、プロジェクトの作成が実施され、プロジェクト作成後にプロジェクトの概要ページが表示されます。
この概要ページから「アプリ内で使用するGoogle APIの有効化」をクリックします。
このAPI一覧からDrive APIとGoogle+ APIをクリックして有効化します。もしこの中に見つからない場合は、検索してみてください。
有効化されたAPIを確認し、目的のAPIが追加されていることを確認します。
初期状態で有効になっているAPIがいくつかありますが、今回はそのままにしておきます。実際の製品開発時には不要なAPIはこの一覧から削除した方が間違いないです。
これでアプリから利用するAPIの設定は完了です。
次にクライアントIDの設定を行います。右側メニューの「認証情報」をクリックします。
「新しいクライアントIDを作成」をクリックします。
Androidアプリの場合、「アプリケーションの種類」は「インストールされているアプリケーション」を選択し「同意画面を設定」をクリックします。
必須なのはメールアドレスとサービス名です。サービス名は、プロジェクト名、アプリ名と同一にしました。その他URLなどは必要に応じて入力してください。
サービスロゴを省略した場合は、アプリアイコンが使用されます。
入力が完了したら「保存」をクリックします。
表示されるダイアログでは、以下のように入力します。
署名証明書フィンガープリントは、端末から以下のコマンドで調べます。
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -list -v
keytool -exportcert -alias androiddebugkey -keystore "%USERPROFILE%\.android\debug.keystore" -list -v
パスワードを求められるので、「android」とタイプしてください。今回は開発用のdebug.keystoreを使用していますが配布用でも同様です。
Google+ディープリンクとは、Google+で共有されたコンテンツをアプリで開くことができるようになる機能です。今回は利用しません。
全ての入力が完了したら、「新しいクライアントIDを作成」をクリックします。
作成が完了すると、追加されたクライアントIDが表示されます。Androidアプリの場合、ここに表示されている情報はアプリでは利用しません。
これでGoogle Developer Consoleでの設定は完了です。
Copyright © ITmedia, Inc. All Rights Reserved.