由於 Google Chat API 是共用服務,因此我們設有配額和限制,確保所有使用者都能公平使用,並維護 Google Workspace 的整體效能。
如果超出配額,您會收到 429: Too many requests
HTTP 狀態碼回應。在 Chat 後端進行額外的速率限制檢查時,也可能會產生相同的錯誤回應。如果發生這項錯誤,請使用指數輪詢演算法,稍後再試。只要不超過下表列出的每分鐘配額,每日要求數量就沒有限制。
Chat API 方法可能適用多種配額類型:專案配額、空間配額和使用者配額。
每項專案的配額
專案配額會限制 Google Cloud 專案的查詢頻率,因此適用於呼叫指定 Chat API 方法的單一 Chat 應用程式。
下表詳細列出每個專案的查詢限制。您也可以在「配額」頁面查看這些限制。
每項專案的配額 |
Chat API 方法 |
限制 (每 60 秒) |
---|---|---|
每分鐘訊息寫入數 |
|
3000 |
每分鐘訊息讀取數 |
|
3000 |
每分鐘成員資格寫入數 |
|
300 |
每分鐘會員讀取數 |
|
3000 |
每分鐘空間寫入數 |
|
60 |
每分鐘工作區讀取數 |
|
3000 |
每分鐘附件寫入數 |
|
600 |
每分鐘附件讀取數 |
|
3000 |
每分鐘回應寫入數 |
|
600 |
每分鐘讀取回應數 |
|
3000 |
每個空間的配額
每個空間的配額會限制特定空間中的查詢頻率,且空間中所有 Chat 應用程式都會共用這些配額,並針對每個配額呼叫列出的 Chat API 方法。
下表詳細列出每個空間的查詢限制:
每個空間的配額 |
Chat API 方法 |
限制 (每 60 秒) |
---|---|---|
每分鐘讀取數 |
|
900 |
每分鐘寫入數 |
|
60 |
每位使用者的配額
每位使用者的配額會限制 Google Chat 使用者的查詢頻率。查詢是指代表使用者呼叫 Chat API 方法的所有 Chat 應用程式 (使用使用者驗證)。
下表詳細列出每位使用者的查詢限制:
每位使用者的配額 |
Chat API 方法 |
限制 (每 60 秒) |
---|---|---|
每分鐘讀取數 |
|
900 |
每分鐘寫入數 |
|
60 |
其他用量限制
建立 GROUP_CHAT
或 SPACE
類型的聊天室 (使用 spaces.create
或 spaces.setup
方法) 時,有額外的配額限制。每分鐘建立的這類聊天室數量少於 35 個,每小時少於 800 個。DIRECT_MESSAGE
類型的空間不受這些額外配額限制。
如果針對相同空間的 API 流量過高,可能會觸發「配額」頁面未顯示的額外內部限制。
解決時間配額錯誤
對於所有時間相關錯誤 (每 X 分鐘最多 N 個要求),建議您的程式碼擷取例外狀況,並使用截斷指數輪詢,確保裝置不會產生過多負載。
指數輪詢是網路應用程式的標準錯誤處理策略。指數輪詢演算法會以指數方式重試要求,並將每次要求之間的等待時間逐漸增加至最大輪詢時間,如果要求仍未成功,請務必隨著時間增加要求之間的延遲時間,直到要求成功為止。
演算法範例
指數輪詢演算法會以指數方式重試要求,並將每次重試之間的等待時間逐漸增加至最大輪詢時間,例如:
- 向 Google Chat API 提出要求。
- 如果要求失敗,請等待 1 +
random_number_milliseconds
秒後再重試要求。 - 如果要求失敗,請等待 2 +
random_number_milliseconds
秒後再重試要求。 - 如果要求失敗,請等待 4 +
random_number_milliseconds
秒後再重試要求。 - 依此類推,時間上限為
maximum_backoff
。 - 繼續等待和重試,直到重試次數達特定上限,但不再增加每次重試之間的等待時間。
其中:
- 等待時間為
min(((2^n)+random_number_milliseconds), maximum_backoff)
,n
會在每次疊代 (要求) 時增加 1。 random_number_milliseconds
是小於或等於 1,000 的隨機毫秒數。這種設定有助於避免多個用戶端在特定情況下全部同步進行處理並同時重試,導致同步傳送每一波要求。random_number_milliseconds
的值會在每次重試要求後重新計算。maximum_backoff
通常是 32 或 64 秒,適合的值視用途而異。
用戶端達到 maximum_backoff
時間上限後,還是可以繼續重試。但接下來的重試工作就不需繼續增加輪詢時間。舉例來說,如果用戶端使用的 maximum_backoff
時間上限是 64 秒,達到這個值之後,用戶端就可以維持在每 64 秒重試一次的頻率。到了特定時間點後,用戶端應停止無限重試。
重試之間的等待時間和重試次數,應視用途及您的網路狀況而定。
申請提高每項專案的配額
您可以依據專案的資源用量,要求調整配額。服務帳戶的 API 呼叫會視為使用單一帳戶。我們不保證一定能核准您提出的配額調整要求。如果配額調整要求會大幅提高配額值,可能需要較長時間才能通過核准。
並非所有專案的配額都相同。隨著您使用 Google Cloud 的時間越長,配額值可能需要增加。如果預期用量將大幅攀升,可以透過 Google Cloud 控制台的「配額」頁面主動要求調整配額。
如要進一步瞭解相關內容,請參閱下列資源: