API キーを使用する

プラットフォームを選択: Android iOS JavaScript ウェブサービス

始める前に

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

API キーを作成する

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

API キーを作成するには:

コンソール

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

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

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

Cloud SDK

gcloud alpha services api-keys create \
    --project "PROJECT" \
    --display-name "DISPLAY_NAME"

詳しくは、Google Cloud SDKCloud SDK のインストール、および以下のコマンドをご覧ください。

API キーの制限

アプリケーションに必要な API しか使用しないよう、API キーの使用に制限をかけておくことを強くおすすめします。API キーに制限をかけることにより、不正なリクエストからアプリケーションを守り、セキュリティを強化できます。詳しくは、API の保護に関するベスト プラクティスをご覧ください。

API キーを制限する際は、そのアプリケーションの署名に使われた署名鍵の SHA-1 証明書フィンガープリントを指定する必要があります。証明書には次の 2 種類があります。

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

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

証明書のフィンガープリントを取得する方法については、クライアントの認証に関する記事をご覧ください。Play アプリ署名を使用している場合は、Google Play Console のアプリ署名ページに移動して証明書のフィンガープリントを取得する必要があります。

API キーを制限するには:

Console

  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
    • API の制限:
      1. [キーを制限] をクリックします。
      2. [API を選択] プルダウンから [Places API] を選択します。 Places API がリストに表示されない場合は、この API を有効にする必要があります。
  4. 変更が完了したら、[保存] をクリックします。

Cloud SDK

既存のキーを一覧表示します。

gcloud services api-keys list --project="PROJECT"

既存のキーに対する既存の制限を削除します。

gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \
    --clear-restrictions

既存のキーに新しい制限を設定します。

gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \
    --api_target="places-backend.googleapis.com"
    --allowed-application="sha1_fingerprint=SHA1_FINGERPRINT,package_name=ANDROID_PACKAGE_NAME"

詳しくは、Google Cloud SDKCloud SDK のインストール、および以下のコマンドをご覧ください。

アプリの証明書情報を確認する

API キーは、SHA-1 フィンガープリントと呼ばれるアプリのデジタル証明書の短縮形に基づいています。証明書の SHA-1 フィンガープリントを表示するには、まず、正しい証明書を使用していることを確認してください。次の 2 種類の証明書がある場合があります。

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

Gradle の使用

Gradle を使用すれば、アプリの署名情報を簡単に取得できます。./gradlew signingReport を実行するだけです。

出力結果は次のようになります。

Task :app:signingReport

Variant: debug
Config: debug
Store: ~/.android/debug.keystore
Alias: AndroidDebugKey
MD5: 76:4E:BF:C3:59:DA:D3:8F:98:D6:3C:DB:87:A4:5B:E7
SHA1: 99:8E:73:B8:3A:A3:A3:C4:C1:D4:19:08:F6:7E:9E:F6:75:29:4C:B2
SHA-256: 6C:01:12:53:90:94:73:B5:66:D6:07:FF:A5:6F:AB:30:AE:99:20:55:0F:B3:12:22:4C:46:7E:02:3D:7E:6D:1D
Valid until: Friday, June 25, 2049
----------
Variant: release
Config: release
Store: app/keystore.jks
Alias: keystore
MD5: 1E:63:0F:14:67:E0:04:BD:98:4C:EB:2B:09:EF:7E:1E
SHA1: 2C:DF:9F:D1:A3:0D:1E:01:48:34:5D:91:52:0B:D8:8A:5A:07:45:C3
SHA-256: 12:66:CE:4B:90:FD:64:1A:4D:79:9E:78:AD:59:0C:21:D8:53:61:EE:2B:90:E4:67:CE:65:A0:76:04:13:23:89
Valid until: Tuesday, September 29, 2116

手動

-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 進数で構成されるシーケンスです。

次のステップ

API キーを入手できたら、次は Android Studio プロジェクトをセットアップするの説明に沿って、プロジェクトの作成と設定を行いましょう。