【问题标题】:Nest API - How long do Per Access Token rate limitations lastNest API - 每个访问令牌速率限制持续多长时间
【发布时间】:2014-06-26 16:46:17
【问题描述】:

在每 10 秒使用一次访问令牌时遇到请求过多错误。在重新阅读文档时,我意识到这是一个禁忌(“为避免错误,我们建议您以每分钟一次或更少的速度提出请求”)。

有人知道我会被限制多久吗?

【问题讨论】:

  • 当你问 Nest 时他们说了什么?
  • 你试过向 Nest 询问 API 吗?他们告诉你来这里。

标签: nest-api


【解决方案1】:

注意:这是 当前 实现。它可能会改变。

请求使用一小时的滑动窗口进行计数。如果您在一秒钟内使用所有这些,则需要等待一个小时才能使第一个退出窗口。

如果您在 10 分钟的窗口内使用所有这些,您将在 50 分钟内再收到一个请求,然后在 10 分钟内,随着更多请求退出滑动窗口,您会收到更多请求。

【讨论】:

  • 感谢您的反馈 - 这是 Nest 的官方回复,还是根据您自己的经验做出的回复?此外,您提到在特定时间跨度内使用所有请求 - 大概是每小时 60 个?有机会让 Firebase 和 JSON 流式传输工作,这对我来说不再是一个问题,但它仍然是非常有用的信息。
【解决方案2】:

回答我自己的问题:超过 10 分钟不到一个小时。

至少,这就是我今天所经历的,尽管昨晚至少在我放弃并获得新令牌之前的一个小时。

也许它是由 Nest 手动清除的,在这种情况下,我想它和一根绳子一样长。不幸的是,虽然 Nest 派我们来这里寻求支持,但没有回答任何问题,但很难确定。

【讨论】:

    【解决方案3】:

    鉴于 Nest 建议您每分钟只发出一次请求,因此该错误应该会在一分钟不活动后清除。

    Data Rate Limits 指南还指出:

    随着我们更多地了解客户端使用模式及其对服务的影响,我们可能会发现有必要修改速率限制。我们强烈建议您让客户使用最少的调用次数来构建引人入胜的用户体验,并适当处理违反速率限制的情况。

    因此,如果您需要的数据更新频率高于每分钟一次,您应该使用 API 的 REST 流式传输或 Firebase 版本来避免大量连接事件。这也将带来更好的性能,因为不需要每次都启动 HTTP 连接。

    【讨论】:

    • 一分钟后没有清除(我已经尝试过等待)。事实上,一个小时后它仍然没有清除,这就是我最终得到另一个令牌的原因。我仍然认为这个问题是合理的 - 禁令实施多长时间?
    • 我现在已经实现了一个本地缓存,它可以防止 Nest-API 每 60 秒被多次命中。然而,我刚刚再次被 429: Too Many Requests 响应击中,这意味着即使每 60 秒也太频繁了。
    • 如果设备的电池电量不足,您还会收到 429(防止电池耗尽)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 2016-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-30
    相关资源
    最近更新 更多