facebook - 以合法方式从 Facebook 提取公共数据
问题描述
我想制作一个需要从 facebook 收集一些公共数据的应用程序。具体来说,我需要检查对公共帖子的反应和评论。
我注意到两件事:首先,根据https://www.facebook.com/apps/site_scraping_tos_terms.php,除非 facebook 给您书面许可,否则不允许抓取。(无论如何,我如何请求许可?)其次,据我所知,图形 api 不允许获取有关其他用户/页面发布的帖子的信息。我错了吗?
我如何以合法的方式获得我需要的信息,甚至有可能吗?
解决方案
要在页面中获取公共帖子以及对这些帖子的反应和评论,您的应用将需要页面公共内容访问权限。如果您尚未创建应用程序,您可以在此链接中找到如何执行此操作,以及如何在此链接中查看您的应用程序的权限。
获得权限后,您可以使用以下 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 来获得相同请求的总反应,但您无法获得评论,但您将获得评论计数
推荐阅读
- node.js - 如何修复:错误:如果 .NET 源代码作为 JavaScript 函数提供,函数体必须是 /* ... */ 注释
- javascript - 切换按钮处于关闭状态,尽管它的值为 true
- ios - 在 iOS 中完成后,Firebase 不会关闭 Microsoft 签名页面
- scala - Scala 中更好的功能输入/输出参数样式
- c++ - 如何修复 poco Poco::Net::TCPServerParams() valgrind 确定泄漏
- reactjs - 如何在 Material UI 中居中?
- c++ - 在生成 LLVM IR 时跟踪范围?
- php - 我想在多列但同一个表中插入多个复选框值
- string - 检查字符串中是否有小写字符
- java - 如何从object1中创建的object2调用object1的方法