搭配使用 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 金鑰是一組專屬 ID,用於驗證與您專案有關的使用權限及帳單處理要求。您的專案至少要有一個相關聯的 API 金鑰。 如要建立新金鑰,或將 API/SDK 新增至現有金鑰,請按照下列操作說明進行。

控制台

  1. 前往「Google Maps Platform」>「金鑰和憑證」頁面。

    前往「Keys & Credentials」(金鑰和憑證) 頁面

  2. 如果出現系統提示,請選取您的專案。
  3. 請執行下列任一步驟:

    • 建立新金鑰:

      1. 依序按一下 [Create credentials] (建立憑證) > [API key] (API 金鑰)。
      2. 在「建立 API 金鑰」面板中,開啟「選取 API 限制」清單。
      3. 清除這組金鑰不需要的所有 API,並確認 Distance Matrix API 仍處於選取狀態。
      4. 按一下「建立」,面板會顯示新的 API 金鑰。
    • 使用現有金鑰:

      1. 按一下金鑰名稱。
      2. 在「選取 API 限制」清單中,選取「Distance Matrix API」。
      3. 按一下 [儲存]。

    在這裡選取 API 並不會啟用該 API。確認 Distance Matrix API 已在 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 不是金鑰字串或顯示名稱。如要找出這個值,請執行 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 安全性最佳做法」。

限制 API 金鑰的方法如下:

控制台

  1. 前往「Google Maps Platform」>「金鑰和憑證」頁面。

    前往「金鑰和憑證」頁面

  2. 選取要設定限制的 API 金鑰,畫面隨即顯示 API 金鑰屬性頁面。
  3. 在「Key restrictions」(金鑰限制) 下方,設定下列限制:
    • 應用程式限制:
      1. 如要接受由您提供的網路伺服器 IP 位址清單中所列的要求,請選取「應用程式限制」底下的「IP 位址」。您可以指定一或多個 IPv4 或 IPv6 位址,或是採 CIDR 標記法的子網路。IP 位址必須與 Google 地圖平台伺服器監控的來源位址相符。如果您使用網路位址轉譯 (NAT),這個位址通常會對應到電腦的「公開」IP 位址。
    • API 限制:
      1. 在「選取 API 限制」中,確認已選取「Distance Matrix API」。如果選單未列出該 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 傳送。