使用 OAuth

Address Validation API 支援使用 OAuth 2.0 進行驗證。Google 支援常見的 OAuth 2.0 情境,例如網路伺服器適用的情境。

本文件說明如何將 OAuth 憑證傳送至開發環境環境中的 Address Validation API 呼叫。如需在實際工作環境環境中使用 OAuth 的操作說明,請參閱 Google 的驗證

事前準備

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

關於 OAuth

根據您的部署環境,您可以透過 OAuth 使用 OAuth 建立和管理存取權杖。

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

或者,您可以在 Android 或 iOS 行動應用程式中使用 Address Validation API。如需將 OAuth 與 Address Validation API 搭配使用的一般資訊,包括如何管理不同部署環境的存取權杖,請參閱使用 OAuth 2.0 存取 Google API

關於 OAuth 範圍

如要搭配使用 OAuth 與 Address Validation API,您必須指派 OAuth 權杖範圍:

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

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

如果您想使用 OAuth 權杖試用 Address Validation 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 要求

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

  • 使用下列指令產生權杖,將 OAuth 權杖傳送至 Authorization 標頭:

    gcloud auth application-default print-access-token

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

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

以下範例使用 OAuth 權杖呼叫 Address Validation API:

curl -X POST -d '{
  "address": {
    "regionCode": "US",
    "locality": "Mountain View",
    "addressLines": ["1600 Amphitheatre Pkwy"]
  }
}' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
"https://addressvalidation.googleapis.com/v1:validateAddress"

疑難排解

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