用量限制

由於 Google 表單 API 是一項共用服務,因此會套用配額和限制,確保所有使用者都能公平地使用這項功能,並維護 Google Workspace 系統的整體健康狀態。

如果超過配額,您通常會收到 429: Too many requests HTTP 狀態碼回應。如果發生這種情況,請使用指數輪詢演算法,然後再試一次。如果您維持在下方的每分鐘配額內,可以傳送的要求數量沒有上限。

注意:表單手錶有其他限制。詳情請參閱「設定及接收推播通知」一文。

下表詳細列出要求限制:

配額
讀取要求數
每項專案每日 無上限
每項專案每分鐘 975
每項專案每位使用者每分鐘 390
大量讀取要求

(用於 forms.responses.list 要求)。

每項專案每日 無上限
每項專案每分鐘 450
每項專案每位使用者每分鐘 180
寫入要求數
每項專案每日 無上限
每項專案每分鐘 375
每項專案每位使用者每分鐘 150

解決以時間為準的配額錯誤

如果是任何時間性錯誤 (每 X 分鐘最多 N 個要求),建議您使用程式碼擷取例外狀況,並使用部分指數輪詢,確保裝置不會產生過多的負載。

指數輪詢是網路應用程式的標準錯誤處理策略。指數輪詢演算法會以指數增加的方式重試要求,上限為輪詢時間上限。如果要求還是失敗,則要求之間的延遲時間會隨時間增加,直到要求成功為止。

演算法範例

指數輪詢演算法會以指數方式重試要求,進而增加每次重試之間的等待時間,直到最大輪詢時間為止。例如:

  1. 向 Google 表單 API 提出要求。
  2. 如果要求失敗,請等待 1 + random_number_milliseconds,然後重試要求。
  3. 如果要求失敗,請等待 2 + random_number_milliseconds,然後重試要求。
  4. 如果要求失敗,請等待 4 + random_number_milliseconds,然後重試要求。
  5. 依此類推,時間上限為 maximum_backoff
  6. 繼續等待及重試,直到重試次數達特定上限,但不要增加每次重試的等待時間。

其中:

  • 等待時間為 min(((2^n)+random_number_milliseconds), maximum_backoff),而 n 會在每次疊代 (要求) 時增加 1。
  • random_number_milliseconds 是小於或等於 1,000 的隨機毫秒數。這有助於避免多個用戶端在特定情況下同步處理,並一次重試,並在同步 Wave 中傳送要求。系統會在每次重試要求後重新計算 random_number_milliseconds 的值。
  • maximum_backoff 通常是 32 或 64 秒,合適的值會因用途而異。

用戶端可在 maximum_backoff 時間過後繼續重試。但接下來的重試工作就不需繼續增加輪詢時間。舉例來說,如果用戶端使用的 maximum_backoff 時間是 64 秒,達到這個值後,用戶端就能每 64 秒重試一次。在某些情況下,用戶端應避免無限期重試。

重試和重試次數的等待時間取決於用途和網路狀況。

定價

使用 Google 表單 API 無須額外付費。超過配額要求限制並不會產生額外費用,您的帳戶也不會產生費用。

申請提高配額

視專案的資源用量而定,建議您要求提高配額。服務帳戶的 API 呼叫視為使用單一帳戶。我們不保證一定能核准您提出的配額增加申請。大量提高配額可能需要較長的時間才能通過核准。

並非所有專案的配額都相同。隨著 Google Cloud 使用一段時間後,您的配額可能需要增加。如果您預期用量將大幅攀升,可以透過 Google Cloud 控制台的「配額」頁面主動要求調整配額

詳情請參閱下列資源: