Places API(新版)を設定する

欧州経済領域(EEA)のデベロッパー

このドキュメントでは、Places API(新版)の使用を開始するために必要な手順について説明します。

前提条件

この手順では、Google Cloud アカウントと、課金が有効になっている Google Cloud プロジェクトを設定します。また、Places API(新版)の使用料金についても理解しておく必要があります。

  1. Places API(新規)の使用量と請求額で、使用量に対する請求額と費用を確認します。
  2. Google Cloud アカウントがあることを確認します。

    Google Cloud コンソールにログインします。
  3. 課金が有効になっている Google Cloud プロジェクトがあることを確認します。

    [お支払い] ページに移動
    1. プロジェクトを選択して [お支払い] ページを開きます。
    2. [お支払い] ページで、次の操作を行います。

      • 選択したプロジェクトで課金がすでに有効になっていて、請求先アカウントが 1 つしかない場合は、[お支払い] ページが開きます。
      • 請求先アカウントが複数ある場合は、[リンクされた請求先アカウントに移動] を選択して、プロジェクトに関連付けられている請求先アカウントの詳細を表示します。
      • 請求先アカウントが存在しても、プロジェクトに関連付けられていない場合は、請求先アカウントをプロジェクトにリンクするように求めるプロンプトが表示されます。
      • 請求先アカウントが存在しない場合、または新しい請求先アカウントを作成する場合は、[請求先アカウントを管理] を選択して新しい請求先アカウントを作成します。詳細については、新しいセルフサービスの Cloud 請求先アカウントを作成するをご覧ください。

API を有効にする

Places API(新版)を使用するには、Google Cloud コンソールまたは gcloud コマンドを使用して、Google Cloud プロジェクトで Places API(新版)を有効にする必要があります。

API を有効にするには:

Console

  1. Google Cloud コンソールで商品ページを開きます。

    Places API(新版)を有効化
  2. [有効にする] ボタンをクリックします。

gcloud

gcloud services enable \
    --project "PROJECT" \
    "places.googleapis.com"

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

Places API(新版)で使用する API キーを取得する

Google Maps Platform サービスでは、API 呼び出しに API キーまたは OAuth トークンのいずれかを含めることを必須とすることで、不正使用を防止しています。最初に API キーの手順を行います。代わりに OAuth トークンを使用するには、OAuth トークンを作成するをご覧ください。

API キーは、Cloud 請求先アカウントと Google Cloud プロジェクトを、アプリケーションから Google Maps Platform API または SDK へのリクエストに関連付ける一意の英数字文字列です。新しいキーを作成する場合、または既存のキーに API や SDK を追加する場合は、次の手順に沿って操作します。

Console

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

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

  2. プロンプトが表示されたら、プロジェクトを選択します。
  3. 次のいずれかを行います。

    • 新しい鍵を作成する:

      1. [認証情報を作成] > [API キー] をクリックします。
      2. [API キーの作成] パネルで、[API の制限の選択] リストを開きます。
      3. このキーに必要のない API をすべてクリアし、[Places API (New)] が選択されたままになっていることを確認します。
      4. [作成] をクリックします。パネルに新しい API キーが表示されます。
    • 既存の鍵を使用する:

      1. 鍵の名前をクリックします。
      2. [API の制限を選択] リストで、[Places API (New)] を選択します。
      3. [保存] をクリックします。

    ここで API を選択しても、API は有効になりません。API ライブラリ ページで Places API(新版)が有効になっていることを確認します。

  4. 後で鍵文字列を表示するには、[鍵と認証情報] ページに移動し、鍵の [鍵を表示] をクリックします。

コンソールの表示がこれらの手順と異なる場合は、Google Cloud ドキュメントの API キーを作成すると API 制限を追加するをご覧ください。

gcloud

次のコマンドで、PROJECT_ID をプロジェクト ID に置き換えます。

  • 新しい鍵を作成する: 次のコマンドを実行します。DISPLAY_NAME は鍵の名前に置き換えます。

    gcloud services api-keys create \
        --project="PROJECT_ID" \
        --display-name="DISPLAY_NAME" \
        --api-target=service=places.googleapis.com

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

  • 既存の鍵を使用する: 次のコマンドを実行します。KEY_ID は鍵の ID に置き換えます。--append フラグは、キーですでに許可されている API を保持します。このフラグを指定しない場合、コマンドはそれらを置き換えます。

    gcloud services api-keys update KEY_ID \
        --project="PROJECT_ID" \
        --append \
        --api-target=service=places.googleapis.com

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

    鍵 ID は、鍵文字列や表示名ではありません。これを確認するには、gcloud services api-keys list --project="PROJECT_ID" を実行します。ID は name フィールドの最後の部分(projects/PROJECT_NUMBER/locations/global/keys/KEY_ID)です。

鍵文字列を表示するには、gcloud services api-keys get-key-string KEY_ID --project="PROJECT_ID" を実行します。

API リクエストを発行する

Places API(新版)リクエストを送信して、「Spicy Vegetarian Food in Sydney, Australia」という文字列のテキスト検索の JSON レスポンスを返します。すべてのリクエストに API キーの英数字文字列を含める必要があります。また、API キーを含むリクエストには HTTPS を使用する必要があります。

  1. 以下のコードの API_KEY をクリックして、鍵の英数字文字列を挿入します。

    curl -X POST -d '{
      "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
    }' \
    -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
    -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \
    'https://places.googleapis.com/v1/places:searchText'
  2. コードサンプルのコピーアイコン コピーアイコンを選択します。 をクリックして、curl コマンドをコピーします。
  3. コマンドをターミナル ウィンドウに貼り付けて実行します。

レスポンスは、次の形式の JSON オブジェクトです。

{
  "places": [
    {
      "name": "places/ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "id": "ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "types": [
        "vegan_restaurant",
        "vegetarian_restaurant",
        "meal_takeaway",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "nationalPhoneNumber": "0433 479 794",
      "internationalPhoneNumber": "+61 433 479 794",
      "formattedAddress": "29 King St, Sydney NSW 2000, Australia",
      "addressComponents": [
        {
          "longText": "29",
          "shortText": "29",
          "types": [
            "street_number"
          ],
          "languageCode": "en-US"
        },
  ...
}

API キーの制限を適用する

API キーの使用を、それらを必要とする API とアプリのみに制限することを強くおすすめします。API キーに制限をかけることにより、不正なリクエストからアプリケーションを守り、セキュリティを強化できます。API キーは、次の 2 種類の制限をサポートしています。

  • API の制限では、API キーを使用した呼び出しを許可する SDK と API を指定します。コンソールと gcloud CLI では、キーを作成するときに少なくとも 1 つの API 制限が必要です。
  • アプリケーションの制限では、API キーの使用を許可するウェブサイト、IP アドレス、またはアプリを指定します。

制限の適用について詳しくは、API キーを制限するをご覧ください。

OAuth トークンを作成する

Places API(新版)は、認証に OAuth 2.0 をサポートしています。Google は、ウェブサーバーのシナリオなど、一般的な OAuth 2.0 シナリオをサポートしています。

このドキュメントでは、開発環境で Places API(新版)の呼び出しに OAuth トークンを渡す方法について説明します。本番環境で OAuth を使用する方法については、Google での認証方法をご覧ください。

Google Maps API は、サーバーに API リクエストを送信して直接呼び出すことも、クライアント ライブラリを使用してコードを簡素化することもできます。Google マップには、Go、Java、Node.js、Python 用のクライアント ライブラリが用意されています。詳しくは、Places API(新版)クライアント ライブラリをご覧ください。

OAuth の概要

デプロイ環境に応じて、いくつかの方法で OAuth を使用してアクセス トークンを作成、管理できます。

OAuth 2.0 を使用すると、アプリケーションと Google サービス間のサーバー間インタラクションを行うことができます。このシナリオでは、個々のユーザーではなく、アプリケーションに関連付けられたサービス アカウントを使用します。サービス アカウントを使用すると、ユーザーが直接関与することなく API リクエストを行うことができます。認証方法の詳細については、Google での認証方法をご覧ください。

また、Places API(新版)を Android または iOS のモバイルアプリに統合することもできます。さまざまなデプロイ環境で OAuth を使用してアクセス トークンを管理する方法については、OAuth 2.0 を使用した Google API へのアクセスをご覧ください。

OAuth スコープ

Places API(新版)で OAuth を使用するには、OAuth トークンに次のスコープを割り当てる必要があります。

https://www.googleapis.com/auth/cloud-platform

例: ローカル開発環境で REST API 呼び出しを試す

トークンを生成する環境がなく、OAuth トークンを使用して Places API(新版)を試す場合は、このセクションの手順を使用します。

この例では、アプリケーションのデフォルト認証情報(ADC)から提供された OAuth トークンを使用して呼び出しを行う方法について説明します。ADC を使用してクライアント ライブラリから Google API を呼び出す方法については、クライアント ライブラリを使用した認証をご覧ください。

次の REST 手順は、開発またはテストにのみ使用し、本番環境では使用しないでください。

前提条件

ADC を使用して REST リクエストを行う前に、gcloud CLI を使用して ADC に認証情報を指定します。

  1. gcloud CLI をインストールして初期化します。詳細については、gcloud CLI をインストールするをご覧ください。

  2. gcloud CLI で認証します。

    gcloud auth application-default login
  3. ログイン プロセスを完了して、ADC で使用されるローカル認証情報ファイルに認証情報を保存します。

詳細については、ローカル開発環境の ADC の設定をご覧ください。

REST リクエストを行う

この例では、2 つのリクエスト ヘッダーを渡します。

  • 次のコマンドを使用してトークンを生成し、Authorization ヘッダーで OAuth トークンを渡します。

    gcloud auth application-default print-access-token

    返されるトークンのスコープは https://www.googleapis.com/auth/cloud-platform です。

  • X-Goog-User-Project ヘッダーに、課金が有効になっている Google Cloud プロジェクトの ID または名前を渡します。

OAuth トークンを使用して Places API(新版)を呼び出す手順は次のとおりです。

  1. 次のコードサンプルで、PROJECT_ID は Google Cloud プロジェクト ID に置き換えます。

    curl -X POST -d '{
    "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
    }' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    -H "X-Goog-FieldMask: places.displayName,places.formattedAddress" \
    "https://places.googleapis.com/v1/places:searchText"
  2. curl コマンドをコピーするには、コードサンプルの [コピー] をクリックします。

  3. コマンドをターミナル ウィンドウに貼り付けて実行します。

レスポンスは次のような JSON オブジェクトです。

{
  "places": [
    {
      "name": "places/ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "id": "ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "types": [
        "vegan_restaurant",
        "vegetarian_restaurant",
        "meal_takeaway",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "nationalPhoneNumber": "0433 479 794",
      "internationalPhoneNumber": "+61 433 479 794",
      "formattedAddress": "29 King St, Sydney NSW 2000, Australia",
      "addressComponents": [
        {
          "longText": "29",
          "shortText": "29",
          "types": [
            "street_number"
          ],
          "languageCode": "en-US"
        },
  ...
}

トラブルシューティング

この API がエンドユーザー認証情報をサポートしていないというエラー メッセージがリクエストから返された場合は、ADC 設定のトラブルシューティングをご覧ください。

次のステップ

Places API(新)を有効にして API キーを構成したら、Places API(新)についてで Places API(新)の使用方法の詳細を確認します。