我管理某个facebook page。我正在尝试获得1000多个喜欢的帖子。
我不需要检索在app中使用它的数据。我想手动从我们从Graph API资源管理器获得的输出中复制1000多个喜欢帖子的粘贴链接。我对此有点新鲜。
我已经尝试在API文档中搜索此类查询,这些查询按照类似过滤,但是徒劳无功。我能找到的是如何使用此检索所有帖子
https://graph.facebook.com/ilovetrolls/posts?access_token=
是否有任何此类查询可让我们根据喜欢进行过滤?
答案 0 :(得分:3)
你可以使用fql,你想要一个像这样的查询:
SELECT post_id, comments, like_info.like_count, message
FROM stream
WHERE source_id = 263738183707778 and like_info.like_count > 1000 and created_time > 1325376000
将1325376000替换为您想要的开始时间(此处以unix时间戳格式给出,供参考,请参阅http://en.wikipedia.org/wiki/Unix_time,目前设置为2012年1月1日00:00:00
您需要使用的网址是:
https://graph.facebook.com/fql?q=SELECT post_id, comments, like_info.like_count, message FROM stream WHERE source_id = 263738183707778 and like_info.like_count > 1000 and created_time > 1325376000&access_token=
使用诸如limit = 50之类的soemthing将有助于获取更多帖子。帖子的数量受限于我读到的fql api中的错误。见Facebook FQL stream limit? Facebook FQL `like` table retuns max 100 rows?
建议做的是使用图形api instaed。不幸的是,图表api没有直接的方法来根据喜欢的数量进行过滤。
可能做的一件事是更改日期范围并在循环示例中运行,您可以在其中迭代日期范围,设置created_time的上限和下限,并在循环中运行它或执行批处理查询
如果你想更可靠地尝试这样的事情(以下是python脚本): 用您的access_token
替换YOUR_ACCESS_TOKEN_GOES_HEREimport urllib2
import json
access_token = 'YOUR_ACCESS_TOKEN_GOES_HERE'
request = urllib2.Request('https://graph.facebook.com/263738183707778/?fields=feed.fields%28likes.summary%28true%29.limit%281%29%29.limit%28500%29&access_token='+access_token)
data = urllib2.urlopen(request).read()
data_parsed = json.loads(data)
for a in data_parsed['feed']['data']:
if 'likes' in a:
if int(a['likes']['summary']['total_count'])>1000:
print a['id'].replace('263738183707778_','https://www.facebook.com/ilovetrolls/posts/')
data_parsed = data_parsed['feed']
while 'paging' in data_parsed:
request = urllib2.Request(data_parsed['paging']['next'])
data = urllib2.urlopen(request).read()
data_parsed = json.loads(data)
for a in data_parsed['data']:
if 'likes' in a:
if int(a['likes']['summary']['total_count'])>1000:
print a['id'].replace('263738183707778_','https://www.facebook.com/ilovetrolls/posts/')
答案 1 :(得分:1)
Facebook Graph API不提供任何此类功能。唯一的方法是使用FQL查询。您可以使用以下FQL查询来检索此信息:
SELECT post_id, like_info.like_count
FROM stream WHERE source_id = {Your Page Id}
and like_info.like_count > 1000 LIMIT 50
例如,以下查询将返回为您的网页收到超过1000个赞的帖子:
SELECT post_id, like_info.like_count
FROM stream WHERE source_id = 263738183707778
and like_info.like_count > 1000 LIMIT 50
注意:与普通查询相比,在FQL查询结束时使用LIMIT 50
将在输出中返回更多帖子。我不知道背后的原因。事实上,我认为这仅仅是因为Facebook API的奇怪行为。
答案 2 :(得分:0)
你不能只通过FQL查询来做到这一点。所以你可以使用this URL。或者在输入位置编写您自己的FQL查询。