客户端ID的Instagram速率限制仅适用于未经身份验证的API请求吗?

时间:2013-06-18 20:49:31

标签: api instagram rate-limiting

Instagram提供客户端ID和个人访问令牌的速率限制。两个限制都是5000 /小时。

我需要知道客户端ID限制是否与经过身份验证的请求有关。

将验证来自我的客户端ID的所有请求(使用访问令牌)。所以,如果我有10个令牌,并且我在同一小时内每个访问令牌发出1000个请求,导致总共10000个请求,那么将发生以下哪个:

1)我的所有请求都将通过,因为每1000个请求都是根据访问令牌限制计算的

2)我的第5,0001个请求将失败,因为我使用相同的客户端ID已经超过5000个?

1 个答案:

答案 0 :(得分:2)

每个访问令牌可获得5000个请求。这意味着只要您对用户进行身份验证并使用其访问令牌,您的示例中每个用户就应该剩下4000个。请注意,还有许多其他方法/方法可以受到限制。

以下是一些提示:

  1. 不要并行发出太多电话。这可能看起来像对Instagram的滥用/ DOS攻击,他们可能暂时/永久禁止你。因此,如果您的音量可能很高,请使用速率限制机制,例如队列。这可以 如果请求因网络问题或api限制而失败,则可获得持久性的额外好处。

  2. 我观察并听说过某些电话的限制,比如喜欢/跟随例如有点低,更像是300.如果你只是提取媒体和浏览提要,这不应该是问题。

  3. 访问令牌可能随时到期。请注意,如果您的请求长时间运行,则可能需要处理此错误情况。

  4. 如果您尝试批量拨打较小的批量通话,则可以保存API通话。例如,如果数据集很小并且您知道该项目将在最近的媒体中,则迭代所有用户的项目以查找具有标签的1个媒体项目与浏览标签本身之间可能存在差异。如果您正在进行任何自己的浏览/过滤,请选择最小的可能结果集并从那里开始。

  5. 来自Instagram API Docs

      

    <强>限制   对人好点。如果您发送的请求太快,我们将发回503错误代码(服务器不可用)。

         

    每个access_token或client_id整体限制为每小时5000个请求。实际上,这意味着您应该(在可能的情况下)对用户进行身份验证,以便限制远远超出给定用户的范围。