グーグルのAPIを使うときに欠かせないGoogle OAuthの作り方と使い方:Androidで動く携帯Javaアプリ作成入門(59)(1/3 ページ)
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の種類を問わず認証方法は同じなので、必要に応じて利用したいサービスの実装を追加してみてください。
コラム「2種類の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 Developer Consoleの設定
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などは必要に応じて入力してください。
サービスロゴを省略した場合は、アプリアイコンが使用されます。
入力が完了したら「保存」をクリックします。
表示されるダイアログでは、以下のように入力します。
- アプリケーションの種類:インストールされているアプリケーション
- インストールされているアプリケーションの種類:Android
- パッケージ名:Androidアプリのパッケージ名(コピペ推奨)
- 署名証明書フィンガープリント(SHA1):後述
- Google+ディープリンク:無効
署名証明書フィンガープリントは、端末から以下のコマンドで調べます。
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.
関連記事
「OAuth」の基本動作を知る
いまWebの世界では、さまざまなWebサービスが提供するプラットフォームと、サードパーティが提供するアプリケーションがAPIを中心に結び付き、一種の「APIエコノミー」を形成しています。この連載では、そこで重要な役割を果たす「デジタル・アイデンティティ」について理解を深めていきます。(編集部)RFCとなった「OAuth 2.0」――その要点は?
いまWebの世界では、さまざまなWebサービスが提供するプラットフォームと、サー ドパーティが提供するアプリケーションがAPIを中心に結び付き、一種の「APIエコノミー」を形成しています。この連載では、そこで重要な役割を果たす「デジタル・アイデンティティ」について理解を深めていきます。OAuthを悪用したアカウント乗っ取りに注意喚起、IPA
JavaでTwitterをOAuth認証して使えるTwitter4Jとは
数年前に比べケータイ向けサービス構築を支援するフレームワークやノウハウがたまってきて、そして無料または、格安でサービスを公開できる仕組み(クラウドやVPSなど)も普及している今こそ、ケータイ向けサービス開発を始めるチャンスではないでしょうかOAuthでバーコード情報をTwitterに投稿するiPhoneアプリ作成
iPad/iPhone VS Androidに戸惑っているWebデザイナ/開発者のために、Web技術でネイティブアプリを作れるオープンソースの開発ツールを紹介し、その利点や使い方を連載で解説します- OAuth 2.0を使うソーシャルなAndroidアプリの作り方
OAuth 2.0のソーシャルなWeb APIを使った、Androidで動く簡単なネイティブ・アプリケーションの作り方を解説します - OAuth 2.0でWebサービスの利用方法はどう変わるか
OAuthの現状と1.0の問題点、2.0での特徴などを解説し、2.0の例としてFacebookのAPIの利用例を紹介します