我希望优化我的Facebook应用程序。
今天我通过四个图形API调用进行批量调用:
/me
/me/friends
/me/likes
/me/feed
如果我使用字段扩展将此更改为单个图形API调用,请执行以下操作:
/me?fields=id,name,username,friends,likes,feed
为了限制速度,这现在算作API的一次而不是四次?
答案 0 :(得分:3)
不幸的是,批处理中的每个调用都被视为api调用,在批处理中调用它们会更快,因为它将是1个请求。请参阅此处有关Facebook API的文档:
限制
我们目前将批处理中的请求数限制为50,但为了计算API调用限制和资源限制,批处理中的每个调用都会单独计算。例如,一批10个API调用将计为10个调用,批处理中的每个调用都以相同的方式对CPU资源限制做出贡献。
来源: https://developers.facebook.com/docs/reference/api/batch/
答案 1 :(得分:2)
根据实际测试,我发现在速率限制下,字段扩展可以计入多次使用。例如,从安静状态开始,对单个api(graph.facebook.com/IDENTITY/posts)的63个字段扩展调用序列将我们带到600呼叫速率限制。
答案 2 :(得分:0)
Graph API的字段扩展功能允许您将多个图形查询有效地“连接”到一个调用中。
因此,您的上述查询将代表Batch表单中的四个调用,以及Field Expanded表单中的一个调用。
正如我在上面的评论中所指出的:批量在一个请求中向Facebook发送多个但不一定相关的查询。字段扩展就像通过单个查询在SQL中进行连接一样。