Facebook Graph API如何获取帖子/评论创建用户的名称
问题描述
- 当前调用接口:
https://graph.facebook.com/{myPageId}?fields=posts{id,created_time,message,child_attachments,from,full_picture,attachments{url},likes,reactions,comments{created_time,from,id,message,comments{created_time,from,id,message}}} - 接口返回示例:
{ "posts": { "data": [ { "id": "commentId", "created_time": "2022-05-11T22:51:03+0000", "from": { "name": "some name", "id": "userId" }, "message": "test message1" }, { "id": "commentId2", "created_time": "2022-05-11T22:51:03+0000", "message": "test message2" } ], "paging": { "cursors": { "before": "beforecursor", "after": "aftercursor" } } }, "id": "postId" }
- 现存问题:接口返回结果中,仅能获取自身Facebook账号、已授权主页账号对应的
from字段(包含用户名称、ID),普通用户发布的评论仅返回message、id、created_time字段,缺失from字段,无法提取用户名称用于自有系统创建联系人、关联对应工单。
解决方案
- 补齐所需接口权限:拉取全量评论发布者信息不能仅使用基础的
pages_show_list、pages_read_engagement权限,需要在Meta开发者平台提交pages_read_user_content、pages_manage_metadata权限的审核申请,申请时明确说明用户信息的使用场景为自有系统内联系人建档、工单关联,确保使用场景符合Meta用户数据政策,审核通过后即可获取对应字段的返回权限。 - 调整接口请求方式:不要在拉取主页帖子列表的嵌套请求中一次性拉取多层级评论的
from字段,拿到评论ID后,单独调用单条评论详情接口拉取from信息,接口格式为https://graph.facebook.com/{commentId}?fields=from,created_time,message,id,需要批量查询时可以使用Graph API的批量请求能力,单次请求最多支持查询50条评论的信息,降低请求频次。 - 升级API版本:使用v16.0及以上版本的Graph API,v15及更低版本存在普通用户评论
from字段默认屏蔽的策略限制,高版本API在权限合规的前提下会正常返回评论发布者的公开信息。 - 特殊场景兼容:如果评论用户开启了最高等级隐私设置,禁止第三方应用获取其个人公开信息,这类场景下API无法返回
from字段属于平台规则限制,需要在自有系统中对这类评论做特殊标记,通过评论时间、评论内容匹配对应工单,不得违规爬取用户隐私信息。
内容的提问来源于stack exchange,提问作者Francisco Lozano
相关产品推荐
相关产品推荐

