Facebook上有一个名为Pointless Haiku的小组。 我想下载所有发布到群组墙上的帖子,这样我就可以用随机的ha句数小时来娱乐自己。到目前为止,我已经使用了这个fql查询的图形资源管理器(是正确的术语吗?):2204535003?fields=feed.limit(10000).fields(message)
,它给了我一些墙上的帖子,但不是全部(甚至不是第一个10000,这是我设定的限制)。 我没有Facebook应用,因为我想这样做的唯一原因就是逗我自己。一旦我收到所有帖子,我可能只是将它们写入文件并使用Python进行一些后处理。
实现这一目标的最佳方法是什么?如果我想以编程方式执行此操作,是否需要创建应用程序?
答案 0 :(得分:1)
关于你的观察它给了我一些墙贴但不是全部(甚至不是第一个10000,这是我设定的限制)
我认为Graph Explorer是一个开发和调试工具(有点像Python的IDLE),而不是一个全功能的查询引擎。因此,我相信它有自己的内置页面大小限制,不能被覆盖。我认为限制是25.请注意,这不是返回结果数量的限制。这是将在一个页面上显示的最大结果数。根据结果集的大小,可能需要多个或多个页面才能显示整个集合。
所以...如果你在Graph Explorer中,并运行一个查询,并取回你的结果,如果你向下滚动到Graph Explorer生成的结果的底部,你可能会看到如下内容:
"paging": {
"previous": "https://graph.facebook.com/...",
"next": "https://graph.facebook.com/... "
}
如果您点击" next"之后的网址标签,它会带你到下一页的结果。如果你继续这样做,最终你会点击所有页面中的所有结果。
我认为,一次性获取所有结果的方法是通过(比如说)Python脚本或其他类型的方式以编程方式提交GET请求(Graph Explorer帮助您创建和调试)脚本。
就像一个例子,我使用此查询返回自2015年1月1日以来发布到Facebook群组的所有消息和评论的列表。(我使用Graph Explorer在2016年5月8日成功运行了此查询V2.6。)
128791213885003/?fields=name,id,description,owner,feed.since(2015-01-01){message,created_time,comments{from,message,created_time,comments{from,message,comments{from,message}}}}
我希望这会有所帮助。
答案 1 :(得分:0)
您可以使用Graph Explorer。
请勿忘记使用 user_groups 权限获取访问令牌。