能否通过Facebook Graph API获取话题评论及子评论?含替代方案咨询
关于Facebook Graph API获取评论相关问题的解答
我来逐个帮你理清这两个问题:
1. 是否可以通过Facebook Graph API获取某一话题的评论?
首先得明确这里的「话题」具体指向——如果是带有特定话题标签的公开帖子、公共页面下的话题相关内容,或者允许API访问的公共群组内的话题讨论,在满足以下条件的前提下是可以实现的:
- 你需要拥有合法的Facebook开发者账号,创建合规应用并获取对应API权限(比如
pages_read_engagement用于访问公共页面内容,public_profile用于获取公开用户数据等); - 目标内容的隐私设置为公开(私人帖子、私密群组的内容API无法访问)。
具体操作上,你需要先定位到话题对应的具体内容节点(比如某条带话题标签的公开帖子ID),再调用Graph API的/{post-id}/comments端点获取该帖子下的评论。如果要批量获取某话题标签下所有公开帖子的评论,可先通过/{hashtag-id}/posts拿到相关帖子列表,再逐个调用评论接口。
2. 是否可以获取评论及子评论、内容、发布日期,以及用户位置?
官方API实现方式
- 评论与子评论:调用
/{post-id}/comments时,可通过嵌套字段fields=comments{message,created_time}一次性获取评论及其子评论;也可针对单条评论ID调用/{comment-id}/comments单独获取它的子评论。 - 评论内容与发布日期:调用评论接口时指定
fields=message,created_time即可,其中message是评论文本内容,created_time是ISO 8601格式的发布时间戳。 - 用户位置:这个要分情况看待:
- 如果用户发布评论时主动附加了位置信息,你可在评论字段中拿到
place数据(需请求对应权限); - 如果要获取评论作者的常驻位置,需调用
/{user-id}/location,但前提是该用户的位置信息设为公开,且你的应用已通过user_location权限审核(这个权限门槛较高,需要明确的使用场景说明)。
注意:受Facebook隐私政策限制,大部分用户不会公开位置信息,所以这个数据不一定能稳定获取到。
- 如果用户发布评论时主动附加了位置信息,你可在评论字段中拿到
关于替代方式
非官方的爬虫、第三方工具等方式完全违反Facebook服务条款,不仅会导致开发者账号被封禁,还可能涉及法律风险,绝对不建议使用。
内容的提问来源于stack exchange,提问作者primo




