API キーを使用する

このトピックでは、Maps SDK for Android 用の API キーを作成してアプリに追加し、そのキーを制限することでアプリを保護する方法を説明します。この SDK を使うアプリには、API キーを必ず追加してください。

始める前に

Maps SDK for Android のご利用にあたっては、請求先アカウントと Maps SDK for Android が有効なプロジェクトが必要です。詳しくは、Cloud Console での設定をご覧ください。

API キーを作成する

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

API キーを作成するには:

  1. [Google Maps Platform] > [認証情報] ページに移動します。

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

  2. [認証情報] ページで、[認証情報を作成] > [API キー] をクリックします。
    [API キーを作成しました] ダイアログに、新しく作成した API キーが表示されます。
  3. [閉じる] をクリックします。
    新しく作成した API キーが [認証情報] ページの [API キー] に表示されます。
    (本番環境で使用する前に、忘れずに API キーの使用を制限してください)。

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

このセクションでは、アプリで安全に参照されるように API キーを保存する方法を説明します。API キーは、バージョン管理システムにはチェックインせず、プロジェクトのルート ディレクトリにある local.properties ファイルに保存することをおすすめします。local.properties ファイルについて詳しくは、Gradle プロパティ ファイルをご覧ください。

このタスクを効率化するには、Android 用 Secrets Gradle プラグインを使用します。

プラグインをインストールして API キーを保存するには:

  1. Android Studio でルートレベルの build.gradle ファイルを開き、buildscript の配下にある dependencies 要素に次のコードを追加します。
    buildscript {
        dependencies {
            // ...
            classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.0"
        }
    }
        
  2. 次に、アプリレベルの build.gradle ファイルを開き、次のコードを plugins 要素に追加します。
    id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
        
  3. ファイルを保存して、プロジェクトを Gradle と同期します
  4. プロジェクト レベルのディレクトリで local.properties を開き、次のコードを追加します。YOUR_API_KEY を API キーに置き換えます。
    MAPS_API_KEY=YOUR_API_KEY
        
  5. ファイルを保存して、プロジェクトを Gradle と同期します。
  6. AndroidManifest.xml ファイルで com.google.android.geo.API_KEY に移動し、android:value attribute を次のように更新します。
    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="${MAPS_API_KEY}" />
        

注: 上記のように、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 キーを制限する際は、そのアプリケーションの署名に使われた署名鍵の SHA-1 証明書フィンガープリントを指定する必要があります。証明書には次の 2 種類があります。

  • デバッグ用証明書: この証明書は、テスト中のアプリおよび他の非本番環境のコードでのみ使用できます。デバッグ用証明書で署名されたアプリは公開しないでください。この証明書は、デバッグビルドを行う際に Android SDK Tools によって自動的に生成されます。
  • リリース用証明書: この証明書は、アプリをアプリストアにリリースする準備が整ったときに使用します。この証明書は、リリースビルドを行う際に Android SDK Tools によって生成されます。

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

API キーを制限するには:

  1. [Google Maps Platform] > [認証情報] ページに移動します。

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

  2. 制限を設定する API キーを選択します。選択した API キーのプロパティ ページが表示されます。
  3. [キーの制限] で、次の制限を設定します。
    • アプリケーションの制限:
      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
        証明書のフィンガープリントを取得する方法については、クライアントの認証に関する記事をご覧ください。Play アプリ署名を使用している場合は、Google Play Console のアプリ署名ページに移動して証明書のフィンガープリントを取得する必要があります。
    • API の制限:
      1. [キーを制限] をクリックします。
      2. [API を選択] プルダウンから [Maps SDK for Android] を選択します。 Maps SDK for Android がリストに表示されない場合は、この SDK を有効にする必要があります。
  4. 変更が完了したら、[保存] をクリックします。