2

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

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

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

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

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

4

1 回答 1

2

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

以下是一些提示:

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

  2. 我观察到并听说某些调用(例如喜欢/关注)的限制有点低,更像是 300。如果您只是获取媒体和浏览提要,这应该不是问题。

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

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

来自Instagram API 文档

限制 是好的。如果您发送过多请求的速度过快,我们将发回 503 错误代码(服务器不可用)。

每个 access_token 或 client_id 总共限制为每小时 5000 个请求。实际上,这意味着您应该(如果可能)对用户进行身份验证,以使限制远远超出给定用户的范围。

于 2014-03-16T19:36:21.303 回答