20

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

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

我注意到在较小规模的评论中出现了类似的结果。

我正在使用一个简单的 python 脚本来获取页面。它按照 Facebook 提供的分页链接遍历数据,将检索到的每个页面写入一个单独的文件。一旦遇到空回复,它就会停止。

在较小的限制下(例如默认值为 25),我注意到当我浏览分页链接时返回的结果数量单调递减,这看起来很奇怪。

关于什么可能导致这种行为以及如何解决它的任何想法?

4

2 回答 2

1

如果您正在寻找对特定帖子的每个赞/评论的名称列表,我认为您会遇到 API 限制(即使有分页)。

如果您只是在寻找点赞、评论、分享或链接点击的总数,您只需使用帖子端点中提供的 summary=true 参数即可。有点像这样:

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)
于 2015-11-28T18:03:16.430 回答
1

您可以使用下面的 url 或 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)

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

于 2016-04-26T11:58:27.010 回答