Maps SDK for Android: API キーの取得

注: 現在、新規にお申し込みのお客様は Google Maps Platform プレミアム プランをご利用いただけません。

Maps SDK for Android を使用するには API キーが必要です。API キーは、使用量を正確に集計して課金するため、プロジェクトに関連付けられたリクエストであることを認証する一意の識別子です。

API キーを取得する

少なくとも 1 つの API キーをプロジェクトに関連付ける必要があります。

API キーを取得するには:

  1. Google Cloud Platform Console に移動します。
  2. プロジェクトのプルダウンをクリックし、プレミアム プランの購入時に作成されたプロジェクトを選択します。プロジェクト名は、Google Maps API for Business、Google Maps for Work、または Google Maps で始まります。
  3. : プレミアム プランのすべての機能をご利用になるには、お客様のプレミアム アカウントに関連付けられたプロジェクトを使用する必要があります。ライセンスの購入時に、gme-[company] & proj-[number] ([type]) の形式のプレミアム アセット名がお客様に通知されています。適切なプロジェクトにアクセスするため、console.cloud.google.com/project/numbernumber はお客様のプロジェクト番号)を使用し、プロジェクト オーナーとして Cloud Console にログインしてください。プロジェクト オーナーはウェルカム レターに記載されています。

  4. メニューボタン をクリックし、[API とサービス] > [認証情報] を選択します。
  5. [認証情報] ページで、[認証情報を作成] > [API キー] をクリックします。
    [API キーを作成しました] ダイアログに新しい API キー(暗号化された文字列)が表示されます。
  6. [閉じる] をクリックします。
    新しく作成した API キーが [認証情報] ページの [API キー] に表示されます。

アプリに API キーを追加する

以下の手順に沿って、AndroidManifest.xml ファイルに含まれるアプリケーションのマニフェストに API キーを追加します。

  1. 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 キーの値に設定されます。

  2. 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 キーが使用されるようにすることで、アプリケーションのセキュリティが向上します。以下の手順に沿って API キーの制限を設定することを強くおすすめします。詳しくは、API キーに関する推奨事項をご覧ください。

API キーを制限するには:

  1. GCP Console の [プロジェクトの選択] ページで、API キーを追加する Google Cloud プロジェクトを選択または作成します。

    [プロジェクトの選択] ページに移動

  2. [API とサービス] > [認証情報] を選択します。

    [認証情報] ページに移動

  3. 制限を設定する API キーを選択します。選択した API キーのプロパティ ページが表示されます。
  4. [キーの制限] で、次の制限を設定します。
    • アプリケーションの制限:
      1. [Android アプリ] を選択します。
      2. [+ パッケージ名とフィンガープリントを追加] をクリックします。
      3. パッケージ名と 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 の制限:
      1. [キーを制限] をクリックします。
      2. [API を選択] プルダウンから [Maps SDK for Android] を選択します。
        (Maps SDK for Android がリストに表示されない場合は、この API を有効にする必要があります)。
  5. 変更が完了したら、[保存] をクリックします。

アプリの 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 ファイルで指定されているリンクを使用します。
    1. google_maps_api.xml ファイルにあるリンクをコピーして、ブラウザに貼り付けます。このリンクを使用すると、Google Cloud Platform Console が開き、URL パラメータによって必要な情報が Google Cloud Platform Console に入力されるため、必須項目を手動で入力する手間を省くことができます。
    2. 手順に沿って、Google Cloud Platform Console で新しいプロジェクトを作成するか、既存のプロジェクトを選択します。
    3. プロジェクトで使用する Android 限定の API キーを作成します。
    4. 作成された API キーをコピーして、再度 Android Studio に移動して google_maps_api.xml ファイルの <string> 要素内に貼り付けます。
  • 手動による方法: Android Studio で作成された google_maps_api.xml ファイルで指定されている認証情報を使用します。
    1. google_maps_api.xml ファイルにある認証情報をコピーします。
    2. Google Cloud Platform Console に移動します。
    3. コピーした認証情報を使用して、既存の API キーにアプリを追加するか、新しい API キーを作成します。

証明書情報を自分で取得する

アプリをスタートガイドに沿って作成しなかった場合は、証明書の SHA-1 フィンガープリントをご自身で取得していただく必要があります。最初に、正しい証明書を使用していることを確認してください。証明書には次の 2 種類があります。

  • デバッグ用証明書: この証明書は、デバッグビルドを行う際に Android SDK ツールによって自動的に生成されます。この証明書は、テストしているアプリでのみ使用してください。デバッグ用証明書で署名されたアプリを公開しないでください。 デバッグ用証明書について詳しくは、Android デベロッパー向けドキュメントのデバッグモードでの署名に関する説明をご覧ください。
  • リリース用証明書: この証明書は、リリースビルドを行う際に Android SDK ツールによって生成されます。keytool プログラムを使用してこの証明書を生成することもできます。この証明書は、アプリを一般向けにリリースす準備が整っている場合に使用してください。

-v パラメータを指定した keytool プログラムを使用して、証明書の SHA-1 フィンガープリントを表示するには、次の手順を参考にしてください。Keytool について詳しくは、Oracle のドキュメントをご覧ください。

デバッグ用証明書

デバッグ用証明書のフィンガープリントを表示する

  1. デバッグ用のキーストア ファイルを見つけます。ファイル名は debug.keystore です。このファイルはプロジェクトを初めて構築するときに作成され、デフォルトでは、Android Virtual Device(AVD)ファイルと同じディレクトリに保存されます。

    • macOS と Linux: ~/.android/
    • Windows Vista、Windows 7: C:\Users\your_user_name\.android\
  2. 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
リリース用証明書

リリース用証明書のフィンガープリントを表示する

  1. リリース用証明書のキーストア ファイルを見つけます。リリース用キーストアには、デフォルトの保存場所や名前はありません。リリース対象のアプリを作成する際にキーストアを指定しなかった場合は、.apk が未署名のままになります。このため、アプリを公開するには事前に署名する必要があります。リリース用証明書では、証明書のエイリアスと、キーストアおよび証明書のパスワードも必要です。次を入力すると、キーストア内のすべてのキーのエイリアスが表示されます。

    keytool -list -keystore your_keystore_name

    your_keystore_name を、完全修飾されたパスとキーストアの名前(.keystore 拡張子を含む)に置き換えます。キーストアのパスワードが要求されます。パスワードを入力すると、keytool にキーストア内のすべてのエイリアスが表示されます。

  2. ターミナルまたはコマンド プロンプトで次を入力します。

    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 のアプリへの署名に関するガイドをご覧ください。