首页 > 解决方案 > 以合法方式从 Facebook 提取公共数据

问题描述

我想制作一个需要从 facebook 收集一些公共数据的应用程序。具体来说,我需要检查对公共帖子的反应和评论。

我注意到两件事:首先,根据https://www.facebook.com/apps/site_scraping_tos_terms.php,除非 facebook 给您书面许可,否则不允许抓取。(无论如何,我如何请求许可?)其次,据我所知,图形 api 不允许获取有关其他用户/页面发布的帖子的信息。我错了吗?

我如何以合法的方式获得我需要的信息,甚至有可能吗?

标签: facebookweb-crawlerscreen-scraping

解决方案


要在页面中获取公共帖子以及对这些帖子的反应和评论,您的应用将需要页面公共内容访问权限。如果您尚未创建应用程序,您可以在此链接中找到如何执行此操作,以及如何在此链接中查看您的应用程序的权限

获得权限后,您可以使用以下 API 请求从页面获取公开帖子:

https://graph.facebook.com/<PAGE_ID>/posts?access_token=<ACCESS_TOKEN>&fields=name

从上述请求的响应中获取您需要详细信息的帖子的 ID

然后,您可以使用以下请求根据帖子 ID 获取帖子的反应和评论

获得总反应:

https://graph.facebook.com/<POST_ID>?fields=reactions.summary(true)&access_token=<ACCESS_TOKEN>

获取特定类型的总反应(无、喜欢、爱、哇、哈哈、悲伤、愤怒、感恩、自豪):

https://graph.facebook.com/<POST_ID>?fields=reactions.summary(true).type(<REACTION_TYPE>)&access_token=<ACCESS_TOKEN>

获取评论:

https://graph.facebook.com/<POST_ID>?access_token=<ACCESS_TOKEN>&fields=comments.summary(true).limit(999).filter(stream).fields(id,message,created_time,parent)

至于用户的公开帖子,如果帖子是公开的,您将能够通过提供帖子 ID 来获得相同请求的总反应,但您无法获得评论,但您将获得评论计数


推荐阅读