2013-03-25 77 views
20

我想通过Facebook的opengraph API检索特定帖子的评论和喜欢。尽管我确实收到了一些信息,但并不总是与帖子中提到的评论/如count相匹配。我想这可以归因于我使用的令牌的访问权限。但是,我注意到结果会根据请求的限制的不同而有所不同,有时我也会在请求之间得到重复条目。如何检索所有张贴评论/喜欢通过Facebook OpenGraph

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

我已经注意到类似的结果在较小规模的意见。

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

有了小的限制(例如默认值为25),我注意到返回的结果数目在我经历分页链接时单调减少,这看起来很奇怪。

有什么想法可能会导致此行为,以及如何解决它?

+0

我认为有5000个物体的限制。 [Facebook的5000发布API限制] [1] [打破在Facebook的API 5000对象限制] [2] [1]:http://stackoverflow.com/questions/10422186/facebooks-5000-post-api-limit [2]:http://stackoverflow.com/questions/3452018/breaking-the-5000-object-limit-in-facebook-api – 2015-09-05 12:18:00

+0

没有5000的限制,您可以轻松检索Lady Gaga贴子的所有喜欢(目前约20.000) – 2015-09-30 21:27:35

回答

1

如果您正在寻找每个特定帖子的每个/每个评论/名称的列表,我认为您会遇到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) 
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) 

如这里指定为按时间顺序排列,则需要在相同的URL,其值可以在第一反应paging.cursor.after节得到参数后使用为好。

相关问题