2015-10-11 210 views
1

我试图从许多公共Facebook页面中获取所有文章。下面的结合一些分页这样做,但它很慢,因为需要单独的调用遍历每个帖子的页面(然后评论,然后回复,如果这些都包括在内)。Facebook Graph API批处理 - 迭代分页

curl -X GET "https://graph.facebook.com/FacebookDevelopers/feed?fields=id&access_token="$TOKEN 

据我好像在batch endpoint Facebook的API文档中找到的是为了这个美好的,但我有麻烦的帖子的所有页面。

以下是初始请求并遍历一个页面(即总共返回2页),但我无法获得2页以上的内容。

curl \ 
-F 'access_token='$TOKEN \ 
-F 'batch=[{ "method":"GET","name":"getfeed","omit_response_on_success":false,"relative_url":"FacebookDevelopers/feed?fields=id"}, 
      { "method":"GET","omit_response_on_success":false,"relative_url":"FacebookDevelopers/feed?fields=id&after={result=getfeed:$.paging.cursors.after}"}]' \ 
https://graph.facebook.com 

有没有办法从使用批处理端点的公共页面获取所有帖子?

+0

你需要什么“所有职位”?如果页面足够陈旧并经常发布,可能会出现数千甚至5或6位数字......没有合理的方法通过API获取所有数据。无论如何,API主要面向与“近期”数据合作,而不是提供一个“历史”一直回到最初。 – CBroe

回答

1

对于每个寻呼请求,您将光标参数(用于调用after)。您只能将批量调用“嵌套”到一个深度级别,因此您确实只能同时请求两个页面。

除了技术限制,还请注意,scraping is not allowed并且有request throttling limits