设置 Places API(新)

欧洲经济区 (EEA) 开发者

本文档介绍了开始使用 Places API(新)所需的步骤。

只有在 API 调用中包含 API 密钥OAuth 令牌时,才能使用 Google Maps Platform 产品,这样可防止这些产品遭到未经授权的使用。

获取用于 Places API(新版)的 API 密钥

API 密钥是一个唯一的字母数字字符串,可将您的 Cloud Billing 账号和 Google Cloud 项目与您的应用向 Google Maps Platform API 或 SDK 发出的请求相关联。

如需将 Places API(新)添加到 API 密钥,请执行以下操作:

控制台

  1. 前往 Google Maps Platform > 密钥和凭据页面。

    前往“密钥和凭据”页面

  2. 如果出现提示,请选择现有项目。
  3. 可用密钥的列表会显示在 API 密钥下方。

    如果您没有 API 密钥,或者想要创建用于 Places API(新)的 API 密钥,请创建新的 API 密钥:

    1. 密钥和凭据页面上,依次点击 + 创建凭据 > API 密钥

      已创建的 API 密钥对话框会显示您新创建的 API 密钥。

  4. 点击 API 密钥的名称即可修改该密钥。
  5. 在修改页面上的密钥限制下,执行以下操作:

    • 应用限制下,如果选择的不是,则只有来自这些来源的请求才会被允许。如需了解详情,请参阅限制您的 API 密钥
    • API 限制下:

      • 如果选择了限制密钥,请选择下拉框,将 Places API(新)添加到 API 密钥。
      • 如果选择不限制密钥,则可以使用该 API 密钥向 Places API(新)发出请求。

      请务必在实际使用之前限制 API 密钥

  6. 选择保存
  7. 选择已修改的密钥对应的显示密钥,以显示该密钥的字母数字字符串。将该字符串传递给下一部分中显示的示例请求。

gcloud

  1. 获取要更新的密钥的 ID。

    此 ID 与显示名称或密钥字符串不同。您可以使用以下 gcloud 命令列出项目中的密钥来获取此 ID。

    gcloud services api-keys list

    该 ID 包含在每个密钥的响应的 name 字段中:

    name: projects/PROJECT_ID/locations/global/keys/KEY_ID
  2. 如果您没有 API 密钥,或者想要创建用于 Places API(新)的 API 密钥,请创建新的 API 密钥:

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

    详细了解 Google Cloud SDKCloud SDK 安装和以下命令:

  3. 使用 gcloud services api-keys update 命令指定可使用 API 密钥向其进行身份验证的服务。

    替换以下值:

    • KEY_ID:您要限制的密钥的 ID。
    • SERVICE_1SERVICE_2…:

      密钥可用于访问的 API 的服务名称。您必须使用 update 命令提供所有服务名称;提供的服务名称会替换密钥的任何现有服务。

    您可以在 API 信息中心上搜索 API 来查找服务名称。对于 Places API(新),服务名称为 places.googleapis.com

    gcloud services api-keys update KEY_ID \
    --api-target=service=places.googleapis.com \
    --api-target=service=SERVICE_1 --api-target=service=SERVICE_2
    

发出 API 请求

发出 Places API(新)请求,以针对字符串“澳大利亚悉尼的辣味素食”返回 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 密钥限制

Google 强烈建议您限制 API 密钥,仅将其用于您的应用所需要的 API。限制 API 密钥可防止您的应用收到无正当理由的请求,从而提高应用安全性。您需要承担因滥用不受限制的 API 密钥而产生的费用。如需了解详情,请参阅 Google Maps Platform 安全指南

API 密钥支持两种类型的限制:

  • API 限制用于指定可以使用 API 密钥调用哪些 SDK 和 API。
  • 应用限制用于指定哪些网站、IP 地址或应用可以使用 API 密钥。

如需详细了解如何应用限制,请参阅限制 API 密钥

后续步骤

现在,您已启用 Places API(新版)并配置了 API 密钥,请参阅关于 Places API(新版),详细了解如何使用 Places API(新版)。