如何通过Facebook Open Graph检索所有帖子评论/喜欢

时间:2013-03-25 18:17:13

标签: python facebook facebook-graph-api facebook-opengraph

我正试图通过Facebook的opengraph API检索特定帖子的评论和喜欢。虽然我确实收到了一些信息,但它并不总是与帖子中提到的评论/喜欢 count 相匹配。我想这可以归因于我正在使用的令牌的访问权限。但是,我注意到结果会因我使用的请求 limit 而异,有时我也会在请求之间获得重复的条目。

例如,截至撰写本文时,帖子10376464573_150423345118848有大约14000个喜欢,但我最多只能检索大约5000个。默认限制为25,我最多可以获得3021个喜欢。值100表示​​4501,而1000,2000,3000和5000的限制都返回相同数量的喜欢,4959(绝对值当然没有太多意义,它们只是用于比较)。

我注意到较小规模的类似结果以供评论。

我正在使用a simple python script来抓取网页。它通过Facebook提供的分页链接查看数据,将检索到的每个页面写入单独的文件。一旦遇到空回复,它就会停止。

如果有小的限制(例如默认值为25),我会注意到,当我浏览分页链接时,返回的结果数量会逐渐减少,这看起来很奇怪。

有关可能导致此行为的原因以及如何解决此问题的任何想法?

2 个答案:

答案 0 :(得分:1)

如果您要查找特定帖子中每个相似/评论的名称列表,我认为您将遇到API限制(即使是分页)。

如果您只是在寻找喜欢,评论,分享或链接点击的总数,那么您只需要使用posts端点中提供的summary = true param。有点像这样:

try:
    endpoint = 'https://graph.facebook.com/v2.5/'+postid+'/comments?summary=true&access_token='+apikey
    response = requests.get(endpoint)
    fb_data = response.json()
    return fb_data

您还可以检索任何特定网页及其摘要数据点的所有帖子:

{page_id}/posts?fields=message,likes.limit(1).summary(true)

答案 1 :(得分:1)

您可以使用以下网址或api检索评论以及特定帖子的计数或其他信息。

https://graph.facebook.com/{0}/comments?access_token={1}&limit={2}&fields=from,message,message_tags,created_time,id,attachment,like_count,comment_count,parent&order=chronological&filter=stream'.format(post_id,access_token,limit)

这里的顺序指定为按时间顺序排列,您需要在同一个网址中使用after参数,其值可以在第一个响应的paging.cursor.after部分中获得。