将 API 密钥与 Distance Matrix API(旧版)搭配使用

Google 仅允许提供正确身份验证凭据的用户调用 API,这样可防止 Google Maps Platform 产品遭到未经授权的使用。这些凭据采用 API 密钥的形式;API 密钥是具有唯一性的字母数字字符串,可将您的 Cloud Billing 账号与您的项目以及特定 API 或 SDK 相关联。

本指南介绍了如何为 Google Maps Platform 创建、限制和使用 API 密钥。

准备工作

在开始使用 Distance Matrix API(旧版)之前,请确保您的项目已关联结算账号并且启用了 Distance Matrix API(旧版)。如需了解详情,请参阅在 Cloud 控制台中进行设置。

创建 API 密钥

API 密钥是唯一标识符,用于对与您的项目相关联的请求进行身份验证,以便您使用相关产品和执行结算。您必须至少有一个与您项目相关联的 API 密钥。 如需创建新密钥或向现有密钥添加 API 或 SDK,请按照以下说明操作。

控制台

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

    前往“密钥和凭证”页面

  2. 如果出现提示,请选择您的项目。
  3. 执行以下其中一项操作:

    • 创建新密钥:

      1. 点击创建凭据 > API 密钥。
      2. 在创建 API 密钥面板中,打开选择 API 限制列表。
      3. 清除此密钥不需要的所有 API,并确保 Distance Matrix API 保持选中状态。
      4. 点击创建。该面板会显示您的新 API 密钥。
    • 使用现有密钥:

      1. 点击密钥的名称。
      2. 在选择 API 限制列表中,选择 Distance Matrix API。
      3. 点击保存。

    在此处选择 API 并不会启用它。确保已在 API 库页面上启用 Distance Matrix 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=distance-matrix-backend.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=distance-matrix-backend.googleapis.com

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

    键 ID 不是键字符串或显示名称。如需查找该 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 密钥

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

如需限制 API 密钥,请执行以下操作:

控制台

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

    前往“密钥和凭证”页面

  2. 选择您要设置限制的 API 密钥。系统随即会显示 API 密钥属性页面。
  3. 在密钥限制下,设置以下限制:
    • 应用限制:
      1. 若要接受来自您提供的一系列 Web 服务器 IP 地址的请求,请在应用限制下选择 IP 地址。 指定一个或多个 IPv4 或 IPv6 地址,或采用 CIDR 表示法的子网。IP 地址必须与 Google Maps Platform 服务器观测到的来源地址一致。如果您使用网络地址转换 (NAT),则该地址通常对应于您计算机的公共 IP 地址。
    • API 限制:
      1. 在选择 API 限制中,确保已选择 Distance Matrix API。如果未列出,您需要启用它。
  4. 点击保存以完成更改。

gcloud

运行以下命令。将 KEY_ID 替换为密钥的 ID,并将 PROJECT_ID 替换为您的项目 ID。如需查找密钥 ID,请运行 gcloud services api-keys list --project="PROJECT_ID"。此 ID 是 name 字段的最后一部分。

gcloud services api-keys update KEY_ID \
    --project="PROJECT_ID" \
    --append \
    --api-target=service=distance-matrix-backend.googleapis.com \
    --allowed-ips="IP_ADDRESS"

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

向您的请求添加 API 密钥

您必须在每个 Distance Matrix API(旧版)请求中添加 API 密钥。在以下示例中,将 YOUR_API_KEY 替换为您的 API 密钥:

https://maps.googleapis.com/maps/api/distancematrix/json?origins=Seattle&destinations=San+Francisco&key=YOUR_API_KEY

对于使用 API 密钥的请求,您必须使用 HTTPS。