API キーを取得する

Maps SDK for Android を使用するには、API キーが必要です。API キーは、関連付けられたプロジェクトの使用や課金を目的としたリクエストで認証に使用される一意の識別子です。

API キーを取得する

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

API キーを取得するには:

  1. Google Cloud Platform Console にアクセスします。
  2. プロジェクトのプルダウンをクリックし、API キーを追加するプロジェクトを選択または作成します。
  3. メニューボタン をクリックし、[API とサービス] > [認証情報] を選択します。
  4. [認証情報] ページで、[認証情報を作成] > [API キー] をクリックします。
    [API キーを作成しました] ダイアログで、新しく作成された API キーが表示されます。
  5. [閉じる] をクリックします。
    新しい API キーは、[認証情報] ページの [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 キーを使用したリクエストのみが承認されるようにすることができます。制限には 2 つの種類があります。以下の両方を設定する必要があります。

  • アプリケーションの制限: ウェブサイト(HTTP リファラー)、ウェブサーバー(IP アドレス)、またはモバイルアプリ(Android アプリ、iOS アプリ)に対して、API キーの使用を制限します。API または SDK のプラットフォームに基づいて、このカテゴリの制限を 1 つのみ選択できます(詳しくは、プラットフォーム別 GMP API をご覧ください)。

    注: ウェブや、ウェブサービス、モバイル API を同じ(クライアント側の)アプリから呼び出す必要がある場合は、複数のキーを作成して制限します。

  • API の制限: 1 つ以上の API または SDK に対する API キーの使用を制限します。 API キーに関連付けられた API または SDK へのリクエストは処理され、API キーに関連付けられていない API または SDK へのリクエストは失敗します(API または SDK は有効にする必要があり、アプリケーションの制限に対応している必要があります)。

API キーを制限するには:

  1. Google Cloud Platform Console に移動します。
  2. プロジェクトのプルダウンをクリックし、保護する API キーが含まれているプロジェクトを選択します。
  3. メニューボタン をクリックし、[API とサービス] > [認証情報] を選択します。
  4. [認証情報] ページで、保護する API キーの名前をクリックします。
  5. [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 ファイルに含まれるリンクを使用します。
    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 に戻って、その API キーを 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 フィンガープリントが含まれています。フィンガープリントは、コロンで区切られた 2 桁の 16 進数 20 個からなるシーケンスです。

デジタル証明書について詳しくは、Android のアプリへの署名に関するガイドをご覧ください。

プレミアム プランのお客様

API キーを取得するには、プレミアム プラン: API キーを取得するをご覧ください。 左側のナビゲーション バーで目的の API または SDK を選択します。