3

目前我正在使用以下 API 调用来检索 Facebook 页面 (PageId) 的 Post Likes 和 Post Comments。在下面,我只进行一次 API 调用并检索所有帖子及其评论总数。

1)。https://graph.facebook.com/PageId/posts?access_token=xyz&method=GET&format=json

但是,根据“2013 年 7 月的重大变化”: - 现在评论计数不适用于上述 API 调用。因此,根据路线图文档,我正在使用以下 API 调用来检索该特定 POST ID 的评论计数('total_count')。

2)。https://graph.facebook.com/post_ID/?summary=true&access_token=xyz&method=GET&format=json

因此,通过第二次 API 调用 - 我能够检索每个 Post Wise 的评论数。但是,在这里您可以看到我需要遍历每个帖子,并且需要逐个检索每个帖子 ID 的评论计数。然后需要总结所有以找出总评论数。所以这需要太多的 API 调用。

我的问题是:-考虑到 7 月 10 日的重大更改,是否可以在单个 API 调用中检索页面 -> 帖子 -> 所有评论总数?

我的第二个 API 调用是否有任何替代方法来检索每个 Facebook 页面帖子的所有评论总数?

4

1 回答 1

0

嗯,好吧,我不相信有一种方法可以将这一切捆绑在一个 api 调用中。但是,您可以批处理请求以在看似相同的 api 调用中获取此信息(将节省时间),但它们将分别计入您的速率限制。(我下面的例子是 4 次违反限制的电话)

示例批处理调用(json 编码) - 我将帖子 ID 存储在 php 变量 $postId 中:

[{"method":"GET","relative_url":"' . $postId . '"}, 
{"method":"GET","relative_url":"' . $postId . '/likes?limit=1000&summary=true"}, 
{"method":"GET","relative_url":"' . $postId . /comments?filter=stream&limit=1000&summary=true"}, 
{"method":"GET","relative_url":"' . $postId . '/insights"}]

我在这个单一调用中批处理 4 个查询。第一个获得帖子信息,第二个获得喜欢(最多 1000 个,加上总数),第三个获得所有评论,加上摘要计数,最后是见解(如果是页面自己的帖子)。

如果您不想要我提取的所有细节,您可以大大简化此批处理调用。

在这种情况下,您仍然需要全部迭代。但是,我相信,Facebook 允许您在每个批处理请求中最多捆绑 50 个调用,因此您可以在同一个批处理调用中请求多个帖子 ID 以加快处理速度。

于 2013-08-02T03:16:24.133 回答