FB Graph API调用reactions字段报错,如何获取帖子的所有反应?
解决Photo节点调用/reactions edge报错的问题
看起来你踩了一个Graph API节点类型的小坑——错误提示里的nonexisting field (reactions)其实是说Photo节点本身没有reactions这个字段,但这不代表你拿不到所有反应类型,只要调整调用方式就可以解决:
正确的调用方式
首先,确保你使用的是最新的Graph API版本(比如v18.0,旧版本可能对Photo节点的reactions支持不完善),然后用以下格式调用reactions edge(注意是edge,不是字段):
GET /v{version}/{photo-id}/reactions?fields=id,name
这个请求会返回所有对该Photo做出反应的用户ID和姓名,默认包含所有反应类型(LOVE、HAHA、WOW、SAD、ANGRY、LIKE等)。
筛选特定反应类型
如果你只需要某几种反应的用户,可以加上type参数,比如只获取LOVE和HAHA反应的用户:
GET /v{version}/{photo-id}/reactions?type=LOVE,HAHA&fields=id,name
额外建议:用Post ID代替Photo ID
如果你的“帖子”是包含图片的动态Post(而不是单独的相册Photo),更稳妥的方式是用Post的ID来调用/reactions edge,因为Post节点对reactions的支持更稳定,不会出现节点类型不匹配的问题:
GET /v{version}/{post-id}/reactions?fields=id,name
权限确认(虽然你说权限没问题)
最后再核对一下权限:
- 访问用户自己的Photo/Post:需要
user_posts或user_photos权限 - 访问Page的Photo/Post:需要
pages_read_engagement权限
这样调整后,应该就能顺利获取所有反应类型的用户信息了。
内容的提问来源于stack exchange,提问作者Raja Jee
相关产品推荐
相关产品推荐

