使用范围扩大数对不同的速率限制比批次呼叫做Facebook的图形API调用(Do Facebook

2019-07-19 01:21发布

我期待优化我的Facebook应用程序。

今天,我让四个图形API调用批处理电话:

/me
/me/friends
/me/likes
/me/feed

如果我使用范围扩大这样的更改为一个单一的图形API调用:

/me?fields=id,name,username,friends,likes,feed

请问,现在算作对API的一击,而不是四个速率限制的目的呢?

Answer 1:

不幸的是,在该批次的每个呼叫都算作一个API调用,它以一个批次中称他们只是更快,因为这将是1个请求。 见在Facebook API文档在这里:

范围
我们目前限制其可以是一个批次到50的请求的数量,但该批次内的每个呼叫被用于计算API调用限制和资源限制的目的而分开计数。 例如,一个批次的10个API调用将计为10个通话和批量内的每个呼叫有助于以相同的方式CPU资源限制。

来源: https://developers.facebook.com/docs/reference/api/batch/



Answer 2:

根据实际测试,我发现场扩展可以依靠下的速率限制多种用途。 例如,从一个安静的状态开始,63场展开调用一个API(graph.facebook.com/IDENTITY/posts)的顺序把我们带到600呼叫速率限制。



Answer 3:

按照Facebook的文件 ,

图形API的领域扩展功能,可以让你有效地“加入”多图查询到一个单一的电话。

所以,你的查询上面将代表批形式四次调用,并在现场展开形式的呼叫。

正如我在上面评论指出:批处理发送多但并非必然相关的查询,以Facebook在单个请求。 野外拓展就像在做SQL通过一个单一的查询连接。



文章来源: Do Facebook Graph API calls using field expansion count differently against the rate limits than batch calls