Facebook Graph API - 同步批量请求的响应

时间:2017-07-11 17:30:43

标签: facebook facebook-graph-api

我能够执行Facebook Graph API批量请求,以发布给定Facebook页面的消息或链接,如下所示:https://developers.facebook.com/docs/graph-api/making-multiple-requests

批量调用示例(将2条消息发布到同一Facebook页面):

access_token=...&batch=[{"method":"POST","relative_url":"000000000000000/feed?fields=created_time,id,permalink_url","body":"message=page+test+post+4"},{"method":"POST","relative_url":"000000000000000/feed?fields=created_time,id,permalink_url","body":"message=Test2+status+update"}]&include_headers=false

上述请求的响应代码段:

[{
    "code": 200,
    "body": "{\"created_time\":\"2017-06-30T01:00:02+0000\",\"id\":\"000000000000000_157349X08600319X\",\"permalink_url\":\"https:\\\/\\\/www.facebook.com\\\/permalink.php?story_fbid=157349X09600319X&id=000000000000000\"}"
},
{
    "code": 200,
    "body": "{\"created_time\":\"2017-06-30T01:00:02+0000\",\"id\":\"000000000000000_157349X08600319X\",\"permalink_url\":\"https:\\\/\\\/www.facebook.com\\\/permalink.php?story_fbid=157349X08600319X&id=000000000000000\"}"
}]

我遇到的麻烦是在上面的示例中尝试将响应映射或同步到父请求。如果Graph API允许发送批处理中的每个请求一些任意ID,然后返回相应的响应,那么我可以将其用于映射目的,但它不会或至少不会记录,这将是很好的它。对于我的应用程序,我需要同步响应,以便为每个父请求将永久链接保存到数据库。

我意识到除了id,永久链接等之外,我还可以请求其他字段返回。但是,没有任何可用字段可以为我提供映射所需的内容。 “消息”字段可能会起作用,但这似乎不是正确的方法。

我的另一个选择是执行单个请求,但我喜欢批处理请求的概念以及它减少服务器调用次数所带来的节省。

1 个答案:

答案 0 :(得分:0)

  

不保证只执行顺序。但是响应的顺序将与原始请求的顺序相对应,引用:“响应的顺序与请求中的操作顺序相对应,因此开发人员应相应地处理响应以确定哪些操作成功以及哪些操作应该重试在随后的行动中。“ - CBroe

如果有人查看此问题,那么CBroe的回答是正确的 - 初步测试确认Facebook批量回复的回复顺序与批量发送的请求相同。