Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何通过Facebook OpenGraph检索所有帖子评论/喜欢_Python_Facebook_Facebook Graph Api_Facebook Opengraph - Fatal编程技术网

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

Python 如何通过Facebook OpenGraph检索所有帖子评论/喜欢,python,facebook,facebook-graph-api,facebook-opengraph,Python,Facebook,Facebook Graph Api,Facebook Opengraph,我试图通过Facebook的opengraph API检索特定帖子的评论和喜好。虽然我确实得到了一些信息,但它并不总是与帖子中提到的评论/喜欢数量相符。我想这可以归因于我使用的令牌的访问权限。但是,我注意到,结果因我使用的请求限制而异,有时我在请求之间也会得到重复的条目 例如,截至本文撰写时,Post10376464573_15042334511848有大约14000个喜欢,但我最多只能检索到大约5000个。默认限制为25,我最多可以得到3021个喜欢。值为100表示4501,而1000、200

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

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

我注意到类似的结果在一个小规模的评论

我用它来取书页。它在Facebook提供的分页链接之后遍历数据,将检索到的每个页面写入一个单独的文件。一旦遇到空回复,它就会停止

对于较小的限制(例如,默认值为25),我注意到返回的结果数量随着分页链接的进行而单调减少,这似乎很奇怪


你有没有想过是什么导致了这种行为以及如何解决它?

如果你正在寻找某篇文章中每个喜欢/评论的名字列表,我想你会遇到API限制(即使是分页)

如果您只是寻找喜欢、评论、共享或链接点击的总数,那么只需使用posts端点中提供的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)

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

正如这里按时间顺序指定的那样,您还需要在同一url中使用after参数,它的值可以在第一个响应的
paging.cursor.after
部分中获得。

我认为有5000个对象的限制。[Facebook的5000个帖子API限制][1][打破Facebook API中的5000个对象限制][2][1]:[2]:没有5000个限制,你可以轻松检索Lady Gaga帖子的所有喜欢内容(目前约为20.000)