如何从Facebook获得最受欢迎、评论和共享的帖子';s API

如何从Facebook获得最受欢迎、评论和共享的帖子';s API,facebook,facebook-graph-api,facebook-javascript-sdk,Facebook,Facebook Graph Api,Facebook Javascript Sdk,我试图从Facebook上获取一些数据,告诉我在给定的日期范围内,在给定的Facebook页面上,哪些帖子最受欢迎、评论和分享 如果我查询API以获取所有单独的帖子并在我自己的代码中循环它们,我可以得到这些数字,但是我经常从API“每600秒600次调用”的速率限制错误中得到一个错误,因为我对每个帖子都进行了调用。我曾尝试使用FB的批处理图请求,但这并不能降低出错的可能性 有没有办法让我不用打那么多电话 是的,您必须进行单独的API调用。批处理api请求被计为正常请求[0]: 例如,一批10个A

我试图从Facebook上获取一些数据,告诉我在给定的日期范围内,在给定的Facebook页面上,哪些帖子最受欢迎、评论和分享

如果我查询API以获取所有单独的帖子并在我自己的代码中循环它们,我可以得到这些数字,但是我经常从API“每600秒600次调用”的速率限制错误中得到一个错误,因为我对每个帖子都进行了调用。我曾尝试使用FB的批处理图请求,但这并不能降低出错的可能性


有没有办法让我不用打那么多电话

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

例如,一批10个API调用将计为10个调用,该批中的每个调用以相同的方式影响CPU资源限制

我的建议:

  • 在服务器端调用graph api并将结果存储在数据库中
  • 在每次通话之间做一些延迟
  • 您可以通过在每个请求之间进行一些延迟来增加请求限制
  • 使用多个扩展页面访问令牌[1],并为每个调用随机选取
  • 在没有sdk的情况下进行调用-您可以使用例如curl to发出简单的GET请求
[0]-

[1] -

您可以使用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}
只需用实际的页面ID替换
{PAGE\u ID}
。您还可以通过具有
读取流
权限的页面访问令牌来运行此操作

如果只需要页面的帖子,请将以下内容添加到FQL查询中:

and actor_id={PAGE_ID}

要找到最流行的API,我认为单独的API调用是唯一的方法/页面/状态将在一次呼叫中返回所有帖子。但是,如果要比较的状态更新超过600个,您可能需要等待这10分钟。使用简单的GET请求而不是sdk帮助如何?sdk本身不只是发出相同的GET请求吗?因为它通常更快,所以您的授权基于普通访问令牌,而不是由同一应用程序发出的应用程序id和应用程序机密以及用户/页面访问令牌对。你只需生成5个应用程序,每次获得普通扩展页面访问令牌和兰德访问令牌,就可以绕过API速率限制。我怀疑你说的是否正确。FBSDK只是对端点的低级HTTP调用的包装。而且使用Pages访问令牌并没有真正的帮助,因为对于许多操作,如果使用真正普通的http调用,则需要实际的用户访问令牌,而不必包括sdk和auth。添加一个抽象层也将使页面访问令牌在用户更改密码之前不会过期。我怀疑这种差异是否存在于可测量的维度。看看PHPSDK是如何工作的,您将看到它只是底层调用的包装器。而且,关于页面访问令牌,只有在Graph API v1.0中才能获得无限持久的访问令牌。这与是否使用SDK无关。此外,正如我所写的,对于很多调用,您需要应用程序或用户访问令牌。FQL将在2015年4月30日(图形API v1.0版结束)之前提供,并且仅适用于4月30日之前创建的应用程序,2014纠正事实:您引用的第一个链接说:
2.0版Facebook平台API是FQL可用的最后一个版本。2.0之后的版本将不支持FQL
,这清楚地表明FQL将在v2.0中可用。声明在后续版本发布之日起两年后,
版本将不再可用。因此,如果API 2.0版于2014年4月30日发布,API 2.1版于2014年5月30日发布,则v2.0版将于2016年5月30日到期,即v2.1版发布两年后