Google is committed to advancing racial equity for Black communities. See how.

數據速率限制

我們希望開發人員創造引人入勝的用戶體驗,但我們也希望 Nest 服務和設備始終可供用戶使用。在給定時間段內發出大量請求的產品可能會影響服務和設備可用性,因此我們應用了速率限制。速率限制限制給定時間段內 API 調用的數量。

速率限制的類型

我們實施了兩類速率限制。第一限制是每個設備或每小時結構。這些限制在所有 Works with Nest 產品之間共享,旨在防止設備過度使用。第二類的限制是每個訪問令牌。這些限制旨在防止過度使用 Nest 服務。

每個設備/結構限制

每次寫入數據模型都需要設備喚醒並同步狀態。這會影響電池壽命,因此我們限制寫入設備和結構的次數。我們還監控所有設備的電池狀態。如果它們低於某個閾值,我們將拒絕寫入請求,直到電池重新充電。

每個訪問令牌限制

每個訪問令牌也有一個關聯的速率限制。與服務建立連接會產生一些開銷,因此我們限制了產品在特定時間段內可以建立的連接數。

對於 REST 和 REST 流調用,每個訪問令牌的調用次數都是有限的。數據速率限制適用於通過 REST 的讀/寫調用,以及通過 REST 流的讀調用。為避免錯誤,我們建議您將請求限制為每分鐘最多一次調用。

錯誤響應

當使用REST ,您將收到的429請求過多的響應代碼。

處理 307 重定向

當進行REST調用,您的產品需要處理307重定向。也稱為 URL 轉發,307 臨時重定向響應為瀏覽器提供新的 URL 以重新提交請求。

當 307 重定向發生時,您需要使用新的 URL 信息再次進行調用。執行此操作時,您應該緩存主機和端口號,以便將來使用該用戶/訪問令牌進行調用。請記住,每次調用都計入速率限制。考慮您的用戶如何與您的產品進行交互。一些用戶會反复按下按鈕或選擇設置,因此如果您為每個用戶操作都調用一次,它會很快影響速率限制。如果用戶快速連續進行一系列更改,您應該只為最後一個(最近的)值進行 API 調用。

欲了解更多信息和示例,請參閱如何處理重定向

307重定向後

如果您正在使用重定向 URL 信息並在稍後獲得 307 重定向,則應遵循該重定向。

連接錯誤

如果您使用緩存的 URL 信息並收到連接錯誤(由於主機停止服務或站點關閉),您應該恢復到原始基本 URL。

速率限制變化

隨著我們更多地了解使用模式及其對服務的影響,我們可能會發現有必要修改速率限制。我們強烈建議您構建產品以使用構建引人注目的用戶體驗所需的最少調用次數,並適當處理違反速率限制的問題。