使用 OAuth

Places API (新版) 支援使用 OAuth 2.0 進行驗證。Google 支援常見的 OAuth 2.0 情境,例如網路伺服器的情境。

本文說明如何在開發環境中將 OAuth 權杖傳送至 Places API (New) 呼叫。如要瞭解如何在實際工作環境環境中使用 OAuth,請參閱 Google 的驗證

事前準備

開始使用 Places API (新版) 之前,您必須擁有已連結帳單帳戶的專案,並啟用 Places API (新版)。建議您建立多個專案擁有者和帳單管理員,這樣您的團隊隨時都有擔任這些角色的成員可處理相關事務。請參閱這篇文章,進一步瞭解如何在 Cloud 控制台中完成相關設定。

關於 OAuth

您可以透過許多方式,根據部署環境使用 OAuth 建立及管理存取權杖。

舉例來說,Google OAuth 2.0 系統支援伺服器對伺服器的互動,例如應用程式與 Google 服務之間的互動。在這種情況下,您需要一個服務帳戶,也就是屬於應用程式,而非個別使用者的帳戶。應用程式會代表服務帳戶呼叫 Google API,因此使用者並不會直接參與其中。如要進一步瞭解驗證方法,請參閱 Google 的驗證

或者,您也可以使用 Places API (新版) 做為 Android 或 iOS 行動應用程式。如需將 OAuth 與 Places API 搭配使用的一般資訊 (新版),包括管理不同部署環境的存取權杖的相關資訊,請參閱「使用 OAuth 2.0 存取 Google API」。

關於 OAuth 範圍

如要將 OAuth 與 Places API (新版) 搭配使用,您必須先指派 OAuth 權杖的範圍:

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

範例:在本機開發環境中試用 REST API 呼叫

如果您想使用 OAuth 權杖試用 Places API (新版),但沒有環境設定可以產生權杖,可以使用本節所述的程序進行呼叫。

這個範例說明如何使用應用程式預設憑證 (ADC) 提供的 OAuth 憑證進行呼叫。如要進一步瞭解如何透過 ADC 使用用戶端程式庫呼叫 Google API,請參閱「使用用戶端程式庫進行驗證」。

必要條件

使用 ADC 提出 REST 要求之前,請使用 Google Cloud CLI 提供憑證給 ADC:

  1. 如果您尚未建立專案,請按照在 Google Cloud 控制台中進行設定的步驟操作。
  2. 安裝並初始化 gcloud CLI
  3. 在本機電腦上執行下列 gcloud 指令,建立憑證檔案:

    gcloud auth application-default login
  4. 隨即顯示登入畫面。登入後,您的憑證會儲存在 ADC 使用的本機憑證檔案中。

詳情請參閱「提供應用程式預設憑證的憑證」說明文件中的「本機開發環境」一節。

發出 REST 要求

在這個範例中,您傳遞兩個要求標頭:

  • 使用下列指令產生權杖,以在 Authorization 標頭中傳遞 OAuth 權杖:

    gcloud auth application-default print-access-token

    傳回的權杖的範圍為 https://www.googleapis.com/auth/cloud-platform.

  • X-Goog-User-Project 標頭中傳遞已啟用帳單功能的 Google Cloud 專案 ID 或名稱。請參閱這篇文章,進一步瞭解如何在 Cloud 控制台中完成相關設定。

以下範例會使用 OAuth 權杖呼叫 Places API (新版):

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"

疑難排解

如果您的要求傳回關於此 API 不支援使用者憑證的錯誤訊息,請參閱使用者憑證無效