如何从Facebook的API获得最喜欢,评论和分享的帖子

时间:2014-06-10 21:24:24

标签: facebook facebook-graph-api facebook-javascript-sdk

我试图从Facebook获取一些数字,告诉我哪些帖子对于给定的Facebook页面以及给定的日期范围内最喜欢,评论和分享。

如果我查询API以获取所有单独的帖子并在我自己的代码中循环显示这些数据,我可以获得这些数据,但我经常从API获得错误"每600秒600次调用& #34;他们的速率限制错误,因为我正在为每个帖子打电话。我尝试过使用FB的批量图请求,但这并没有减少出现错误的可能性。

有没有办法做到这一点,以便我不需要拨打这么多电话?

2 个答案:

答案 0 :(得分:3)

是的,您必须进行单独的API调用。批量api请求计为正常请求[0]:

  

例如,一批10个API调用将计为10个调用,批处理中的每个调用都以相同的方式对CPU资源限制做出贡献。

我的提示:

  • 使图表api调用服务器端并将结果存储在数据库中
  • 每次通话之间有一些延迟
  • 您可以通过在每个
  • 之间进行一些延迟来增加请求限制
  • 使用多个扩展页面访问令牌[1]并为每次调用选择随机
  • 在没有sdk的情况下进行调用 - 您可以使用例如进行简单的GET请求。卷曲到https://graph.facebook.com/post_id?access_token=access_token

[0] - https://developers.facebook.com/docs/graph-api/making-multiple-requests/#limits

[1] - https://stackoverflow.com/a/17234650/1587309

答案 1 :(得分:0)

您可以使用FQL(至少在2016年4月30日之前可用)在一次通话中实现此目的:

select post_id, comment_info.comment_count, like_info.like_count, share_info.share_count from stream where source_id={PAGE_ID}

只需将{PAGE_ID}替换为实际的网页ID即可。您也可以通过具有read_stream权限的页面访问令牌来运行此操作。

如果您只想要网页帖子,请将以下内容添加到FQL查询中:

and actor_id={PAGE_ID}