步驟 5:實作即時 API 更新

因為有新的預訂,您系統中的廣告空間在一天內都會有所波動。 取消作業,並安排商家變更時程。即時更新 API 是一種向 Google 告知商品目錄異動情形的機制 提高可用性您也可以使用即時 API 更新 對現有預訂所做的變更。

API 即時更新和動態饋給

API 即時更新會利用 API 即時更新,向 Google 通知以下 內容供應當下的空缺情況及預訂。此外, 即時 API 更新,每天傳送完整的「供應情形」動態饋給,以確保 是 Google 目前最正確、最新的供應情形資訊 也存在於你的系統中完整的動態饋給可做為目前的數據匯報 您系統中的廣告空間供應量狀態

雖然 API 更新可用於更新 提供的連結包括商家和服務相關資訊 通常只會用於更新供應情形資訊。

必要的即時更新 API

即時更新 (RTU) API
BookingNotification 必要項目 隨時傳送 BookingNotification RTU 預訂變更 (例如修改或取消)。
供應情形取代 RTU 有條件限制的必要項目 [1] 傳送下列其中一項 批次取代單一取代 RTU,用來傳送商品目錄供應情形的更新資訊。 變更可能需要幾分鐘才會生效。
商家 RTU 選用 如要變更商家,請傳送商家 RTU 即時處理資訊變更可能需要數小時才會生效 模擬情境
服務 RTU 選用 如要變更服務,請發送服務 RTU 即時處理資訊其中一項常見的用途是提供服務價格 每日波動會大幅波動,實作服務 RTU 的方式為 ,以免因價格不一致導致訂單失敗。如有變更, 可能要幾小時後才會反映和反映

Availability Replace API RTU

使用 availability 取代 API,在 以下用途:

  • 使用者透過你的系統進行預訂,因此供應時段無 提供更即時的 IP 位址
  • 商家在您的系統中變更了供應情形。
  • 使用者透過 Google 進行預訂,因此供應時段無 提供更即時的 IP 位址
  • 你這邊透過 Google 進行的預訂取消了,例如 是由商家直接提供您需要更新預訂以及 因為原始時段已可再次放送
  • 預訂伺服器 BatchAvailabilityLookup 呼叫傳回 與實際廣告空間不符的廣告空間

詳情請參閱下列資源:

Booking Notification API RTU

Booking Notification API 會通知 Google 更新現有預訂的資訊傳送取消會籍的更新通知時 只傳送請求中的必要資訊 updateMask 查詢參數:範例如下:

Request:
PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/<PARTNER_ID>/bookings/<BOOKING_ID>?updateMask=status

Body:
{"name":"partners/<PARTNER_ID>/bookings/<BOOKING_ID>", "status":"CANCELED"}

存取 API

建立服務帳戶

使用 Google API 控制台中的「憑證」分頁: 建立服務帳戶。將私密金鑰以 JSON 格式儲存在安全 。建立帳戶時,您可以選擇將角色設為 「擁有者。」

驗證 Maps Booking API

建立服務帳戶後,請驗證下列 API:

  • Google Maps Booking API
  • Google Maps Booking API (開發人員)

如需逐步操作指南,請參閱 「透過 Maps Booking API 進行驗證」教學課程。

使用符合 REST 樣式的呼叫或下載用戶端程式庫

建議您直接對 Maps Booking API 進行符合 REST 樣式的呼叫 與 JSON 酬載詳情請參閱 REST API 說明文件

您也可以使用用戶端程式庫連線至 API。

語言 下載連結
Java Java 用戶端程式庫。詳情請參閱 Java 用戶端操作說明

其他資訊 支援資料庫 會處理授權和 Google API 呼叫的其他層面。如有需要, 來看看 這些範例

擷取「探索」文件

針對部分用戶端程式庫 (例如 Ruby),您必須擷取 API 的探索文件,內容說明 API 的方法和 參數。

使用下列指令擷取探索文件:

curl -s -o 'mapsbooking_rest' 'https://mapsbooking.googleapis.com/$discovery/rest?version=v1alpha'

如要進一步瞭解如何透過 Ruby 存取 API,請點選下列連結: Ruby API 用戶端Ruby 驗證程式庫

對 API 發出授權呼叫

呼叫 API 時,請參閱 準備發出已授權的 API 呼叫來授權服務 存取金鑰和以下 OAuth 範圍: https://www.googleapis.com/auth/mapsbooking

API 配額

API 更新的配額為每 60 秒 1,500 個要求,或每 25 個要求。 平均每秒 20% 的影格速率超過配額時 (如果您未在合作夥伴入口網站中加入正確的 Google Cloud 專案編號,就可能發生這種情況),Google 會提供 下列錯誤訊息:

{
  "error": {
    "code": 429,
    "message": "Insufficient tokens for quota ...",
    "status": "RESOURCE_EXHAUSTED",
    "details": [...]
  }
}

如要處理這種情況,請以指數較大的間隔重試呼叫,直到 因此成功如果您經常用完 ReplaceServiceAvailability,切換至 BatchReplaceServiceAvailabily,用於減少 API 數量 呼叫。這個方法可讓您在單一 API 中更新多項服務 呼叫。

沙箱和實際執行環境端點

您可以透過 並嚴謹測試及提升 API 的公平性後 我們才能放心地推出 API確認您已在 Google Cloud 專案中啟用這兩個 API。 這兩個 API 都使用相同的範圍,但端點不同。

實際執行環境端點:https://mapsbooking.googleapis.com/

沙箱端點:https://partnerdev-mapsbooking.googleapis.com/

以下範例說明如何在 Java 中切換端點:

    // This block of code is for OAuth and is the same for prod and sandbox.
    GoogleCredential
      .fromStream(new FileInputStream(...))
      .createScoped(Collections.singleton("https://www.googleapis.com/auth/mapsbooking"))

    // This block of code sets the endpoint. This is what you'd change to connect to the sandbox.
    new GoogleMapsBookingAPI.Builder(...)
      .setApplicationName(...)
      .setRootUrl("https://partnerdev-mapsbooking.googleapis.com/") // you add this to change the endpoint to use partnerdev.
      .build()