Facebook graph api 查询优化和API节流

Facebook graph api 查询优化和API节流,facebook-graph-api,optimization,query-optimization,facebook-fql,throttling,Facebook Graph Api,Optimization,Query Optimization,Facebook Fql,Throttling,我们正在跟踪许多客户端的Facebook页面和帖子指标,根据开发者洞察控制台(洞察->开发者->活动和错误)报告的内容,我们对高CPU强度和过多的帖子/评论有一些疑问。文档中对Graph API的限制和限制有点不清楚,我们只是想确保我们对可用的资源有正确的理解 我们正在努力优化我们的软件和查询,以降低错误率和请求数量。关于这项工作,我们有几个问题: 我们已经改为使用FQL查询而不是常规的Graph API请求来获取帖子评论,这使我们能够为每个请求获取多篇帖子的评论。这导致请求数量显著减少。我们使

我们正在跟踪许多客户端的Facebook页面和帖子指标,根据开发者洞察控制台(洞察->开发者->活动和错误)报告的内容,我们对高CPU强度和过多的帖子/评论有一些疑问。文档中对Graph API的限制和限制有点不清楚,我们只是想确保我们对可用的资源有正确的理解

我们正在努力优化我们的软件和查询,以降低错误率和请求数量。关于这项工作,我们有几个问题:

  • 我们已经改为使用FQL查询而不是常规的Graph API请求来获取帖子评论,这使我们能够为每个请求获取多篇帖子的评论。这导致请求数量显著减少。我们使用的查询中有pageid(pageid\u1,pageid\u2,…)。与常规图形API请求相比,这会增加CPU强度吗

  • 我们还实现了对请求的节流,以确保我们在一段时间内均匀地分配请求,而不是以大的突发方式。对于页面评论,我们确保在10分钟内请求的最大数量不超过300。换句话说,我们将页面评论请求的数量限制为每秒0.5次或每分钟30次。这还是很高吗

  • 一旦超过请求限制,我们假设这是访问令牌,而不是应用ID?因此,如果我们的一个客户过度使用资源,我们的应用程序仍将代表拥有不同访问令牌的其他客户继续工作

  • 在开发者控制台中,在我们应用程序的Insights->developer->Activity&Errors页面下,API节流表的上方有一个时间。例如,1小时14分钟。这一次表明了什么,这个表多久更新一次,这些数字有多旧

  • 我们收到少量响应代码为500的错误。这些错误通常是由于超出请求和/或CPU限制而导致的吗?如果没有,是否有任何方法来确定是什么导致了这些问题,以及我们是否可以采取措施来解决这些问题


  • 我们非常感谢您对我们假设的任何意见和确认。

    对您的问题的一些回答:

    • Facebook对graph API请求的限制是每600秒请求600次。。。但批处理请求被视为批处理中每个请求的一个请求。。。我认为FQL限制是相同的
    • 此限制适用于一个IP和一个访问令牌,如果您有多个令牌和/或IP,则可以调整此限制
    • 我没有实际的例子,但当你打破速度限制时,错误信息是类似“请求太多”,而不是错误500。。。不知道是什么导致了你的情况
    有些问题我不明白: -当你提到“CPU强度”时,你是指你这边还是FB那边?在FB方面,我从未见过这样的限制,唯一的限制是600请求/600秒

    有关更多信息:

    考虑更新标题,将其框定为问题,并更新正文,使其包含单个问题。这些变化可能有助于吸引答案。如果你查看下面的应用>你的应用>洞察>活动和错误,如果你把你的边界推得太远,你会收到API限制错误和警告。到目前为止,我看到的三种类型是:“呼叫太多”、“呼叫占用CPU太多”和“呼叫访问太多数据”。我也有这样的消息,但就我而言,只有“警告”没有错误(此时)。。。在我们的例子中,我们有一个“速度调节器”锁定在300请求/600秒,所以也许这就是为什么我们没有诸如错误之类的消息,而只是警告?显然,
    APP-Token
    的CPU密集型正在发生。如果可以,尽量使用
    页面令牌
    用户令牌
    来传播爱:)600个请求/600秒不是每个令牌和每个IP地址。如果您超过这个窗口速率限制,您将无法从不同的IP地址使用相同的令牌发出更多请求(我已经测试过了)。