Google 致力于为黑人社区推动种族平等。查看具体举措

数据速率限制

我们希望开发人员创造引人入胜的用户体验,但我们也希望 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。

速率限制变化

随着我们更多地了解使用模式及其对服务的影响,我们可能会发现有必要修改速率限制。我们强烈建议您构建产品以使用构建引人注目的用户体验所需的最少调用次数,并适当处理违反速率限制的问题。