Maps SDK for Android を使用するには、API キーが必要です。API キーは、プロジェクトに関連付けられたリクエストの使用や課金の認証に使用される一意の ID です。
API キーを取得する
プロジェクトには少なくとも 1 つの API キーが関連付けられている必要があります。
API キーを取得するには:
- Google Cloud Platform Console にアクセスします。
- プロジェクトのプルダウンをクリックし、API キーを追加するプロジェクトを選択または作成します。
-
メニューボタン
をクリックし、[API とサービス] > [認証情報] を選択します。
-
[認証情報] ページで、[認証情報を作成] > [API キー] をクリックします。
[API キーを作成しました] ダイアログで、新しく作成された API キーが表示されます。 -
[閉じる] をクリックします。
新しい API キーは、[認証情報] ページの [API キー] に表示されます。
(本番環境で使用する前に、忘れずに API キーの使用を制限してください)。
アプリに API キーを追加する
AndroidManifest.xml
ファイルに含まれるアプリケーションのマニフェストに API キーを追加するには、以下の手順を参考にしてください。
AndroidManifest.xml
で、次の要素を<application>
要素の子要素として追加するため、終了タグ</application>
の直前に挿入します。<meta-data android:name="com.google.android.geo.API_KEY" android:value="YOUR_API_KEY"/>
value
属性で、YOUR_API_KEY をご自身の API キー(暗号化された文字列)に置き換えます。 この要素により、キーcom.google.android.geo.API_KEY
が API キーの値に設定されます。AndroidManifest.xml
を保存してアプリを再度作成します。
注: 上記のように、com.google.android.geo.API_KEY
は、API キーとして推奨されるメタデータ名です。この名前のキーは、Android プラットフォームで Google マップベースの複数の API(Maps SDK for Android など)の認証に使用できます。下位互換性を確保するため、API では com.google.android.maps.v2.API_KEY
という名前もサポートされています。この従来の名前は、Android Maps API v2 の認証にのみ使用できます。アプリでは、API キーのメタデータ名を 1 つのみ指定できます。両方を指定すると、API から例外がスローされます。
API キーを制限する
API キーは、使用を制限することを強くおすすめします。制限によってセキュリティを高め、API キーを使用したリクエストのみが承認されるようにすることができます。制限には 2 種類あり、以下の両方を設定する必要があります。
- アプリの制限: API キーの使用を、ウェブサイト(HTTP リファラー)、ウェブサーバー(IP アドレス)、モバイルアプリ(Android アプリ、iOS アプリ)のいずれかに制限します。このカテゴリからは、API または SDK のプラットフォームに基づいて 1 つの制限のみを選択できます(プラットフォーム別の GMP API をご覧ください)。
注: ウェブ API やウェブサービス API、またはモバイル API を同じ(クライアント側の)アプリから呼び出す必要がある場合は、複数のキーを作成して制限します。
- API の制限: API キーの使用を 1 つまたは複数の API もしくは SDK に制限します。 API キーに関連付けられた API または SDK へのリクエストは処理され、 API キーに関連付けられていない API または SDK へのリクエストは失敗します(API または SDK が有効になっていて、アプリの制限に対応している必要があります)。
API キーを制限するには:
- Google Cloud Platform Console に移動します。
- プロジェクトのプルダウンをクリックし、保護する API キーが含まれているプロジェクトを選択します。
-
メニューボタン
をクリックし、[API とサービス] > [認証情報] を選択します。
- [認証情報] ページで、保護する API キーの名前をクリックします。
-
[API キーの制限と名前変更] ページで制限を設定します。
- アプリの制限
- [Android アプリ] を選択し、表示される手順に沿って操作します。
- [+ パッケージ名とフィンガープリントを追加] をクリックします。
- パッケージ名と SHA-1 証明書のフィンガープリントを入力します。次に例を示します。
com.example.android.mapexample
BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
(詳しくは、アプリの SHA-1 フィンガープリントを取得する場所をご覧ください。) - API の制限
- [キーを制限] を選択します。
- [API を選択] をクリックし、[Maps SDK for Android] を選択します。
(Maps SDK for Android が表示されない場合は、有効にする必要があります。) - [保存] をクリックします。
アプリの SHA-1 フィンガープリントを取得する場所
Android API キーの制限は、アプリのデジタル証明書の簡略形(SHA-1 フィンガープリントとも呼ばれます)を基にしています。
Android Studio から証明書情報を取得する
Maps SDK for Android のスタートガイドに沿って操作すると、Android Studio でアプリの認証情報を含む便利な google_maps_api.xml
ファイルが作成されます。
次のいずれかの方法を選んで、Android Studio で API キーを取得します。
- すばやく簡単に取得する方法: Android Studio で作成された
google_maps_api.xml
ファイルで指定されているリンクを使用します。google_maps_api.xml
ファイルにあるリンクをコピーして、ブラウザに貼り付けます。このリンクを使用すると、Google Cloud Platform Console が開き、URL パラメータによって必要な情報が Google Cloud Platform Console に入力されるため、必須項目を手動で入力する手間を省くことができます。- 手順に沿って、Google Cloud Platform Console で新しいプロジェクトを作成するか、既存のプロジェクトを選択します。
- プロジェクトで使用する Android 限定の API キーを作成します。
- 作成された API キーをコピーして、再度 Android Studio に移動して
google_maps_api.xml
ファイルの <string> 要素内に貼り付けます。
- 手動による方法: Android Studio で作成された
google_maps_api.xml
ファイルで指定されている認証情報を使用します。google_maps_api.xml
ファイルにある認証情報をコピーします。- ブラウザで Google Cloud Platform Console に移動します。
- コピーした認証情報を使用して、既存の API キーにアプリを追加するか、新しい API キーを作成します。
証明書情報を自分で取得する
アプリをスタートガイドに沿って作成しなかった場合は、証明書の SHA-1 フィンガープリントをご自身で取得していただく必要があります。最初に、正しい証明書を使用していることを確認してください。証明書には次の 2 種類があります。
- デバッグ用証明書: この証明書は、デバッグビルドを行う際に Android SDK ツールによって自動的に生成されます。この証明書は、テストしているアプリでのみ使用してください。デバッグ用証明書で署名されたアプリを公開しないでください。 デバッグ用証明書について詳しくは、Android デベロッパー向けドキュメントのデバッグモードでの署名に関する説明をご覧ください。
- リリース用証明書: この証明書は、リリースビルドを行う際に Android SDK ツールによって生成されます。
keytool
プログラムを使用してこの証明書を生成することもできます。この証明書は、アプリを一般向けにリリースす準備が整っている場合に使用してください。
-v
パラメータを指定した keytool
プログラムを使用して、証明書の SHA-1 フィンガープリントを表示するには、次の手順を参考にしてください。Keytool について詳しくは、Oracle のドキュメントをご覧ください。
デバッグ用証明書のフィンガープリントを表示する
デバッグ用のキーストア ファイルを見つけます。ファイル名は
debug.keystore
です。このファイルはプロジェクトを初めて構築するときに作成され、デフォルトでは、Android Virtual Device(AVD)ファイルと同じディレクトリに保存されます。- macOS と Linux:
~/.android/
- Windows Vista、Windows 7:
C:\Users\your_user_name\.android\
- macOS と Linux:
SHA-1 フィンガープリントを一覧表示します。
Linux や macOS の場合は、ターミナル ウィンドウを開いて次のコマンドを入力します。
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
Windows Vista と Windows 7 の場合は、次を実行します。
keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
次のような出力が表示されます。
Alias name: androiddebugkey Creation date: Jan 01, 2013 Entry type: PrivateKeyEntry Certificate chain length: 1 Certificate[1]: Owner: CN=Android Debug, O=Android, C=US Issuer: CN=Android Debug, O=Android, C=US Serial number: 4aa9b300 Valid from: Mon Jan 01 08:04:04 UTC 2013 until: Mon Jan 01 18:04:04 PST 2033 Certificate fingerprints: MD5: AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9 SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75 Signature algorithm name: SHA1withRSA Version: 3
リリース用証明書のフィンガープリントを表示する
-
リリース用証明書のキーストア ファイルを見つけます。リリース用キーストアには、デフォルトの保存場所や名前はありません。リリース対象のアプリを作成する際にキーストアを指定しなかった場合は、
.apk
が未署名のままになります。このため、アプリを公開するには事前に署名する必要があります。リリース用証明書では、証明書のエイリアスと、キーストアおよび証明書のパスワードも必要です。次を入力すると、キーストア内のすべてのキーのエイリアスが表示されます。keytool -list -keystore your_keystore_name
your_keystore_name
を、完全修飾されたパスとキーストアの名前(.keystore
拡張子を含む)に置き換えます。キーストアのパスワードが要求されます。パスワードを入力すると、keytool
にキーストア内のすべてのエイリアスが表示されます。 -
ターミナルまたはコマンド プロンプトで次を入力します。
keytool -list -v -keystore your_keystore_name -alias your_alias_name
your_keystore_name
を、完全修飾されたパスとキーストアの名前(.keystore
拡張子を含む)に置き換えます。your_alias_name
を、証明書の作成時に割り当てたエイリアスに置き換えます。
次のような出力が表示されます。
Alias name: <alias_name> Creation date: Feb 02, 2013 Entry type: PrivateKeyEntry Certificate chain length: 1 Certificate[1]: Owner: CN=Android Debug, O=Android, C=US Issuer: CN=Android Debug, O=Android, C=US Serial number: 4cc9b300 Valid from: Mon Feb 02 08:01:04 UTC 2013 until: Mon Feb 02 18:05:04 PST 2033 Certificate fingerprints: MD5: AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6B:AC:F9 SHA1: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:90:AF:A1:66:6E:44:5D:75 Signature algorithm name: SHA1withRSA Version: 3
SHA1
で始まる行に、証明書の SHA-1 フィンガープリントが含まれています。このフィンガープリントは、コロンで区切られた 20 個の 2 桁の 16 進数で構成されるシーケンスです。
デジタル証明書について詳しくは、Android のアプリへの署名に関するガイドをご覧ください。
プレミアムプランをご利用のお客様と移行済みのお客様
プレミアムプランをご利用のお客様と、プレミアムプランから Google Maps Platform の従量課金制モデルに移行されたお客様には、API キーまたはクライアント ID を使用してリクエストを認証していただけます。 詳細については、プレミアムプランについてのドキュメントの API キーの取得に関する概要をご覧ください。