调用Facebook Graph API获取评论者失败问题求助
我之前也碰到过一模一样的问题,折腾了好一阵才摸清楚几个核心的排查方向,你可以逐一验证试试:
权限审核是核心前提:
reviewer字段属于用户敏感数据,你的应用必须通过Facebook的权限审核才能拿到这个字段。先确认你已经申请了pages_read_engagement、pages_show_list这类必要权限,并且审核通过。测试阶段一定要用添加到应用测试用户/测试页面的账号调用API,不然肯定返回空数据。必须显式指定字段请求:Graph API默认不会返回所有字段,你得在请求里明确把
reviewer(包括你需要的子字段)列出来,比如正确的请求格式应该是:/{page-id}/ratings?fields=reviewer{id,name,profile_picture},rating,review_text如果只是请求
/{page-id}/ratings,哪怕有权限也大概率不会返回reviewer的详细信息。用户隐私设置无法绕过:如果评论者的Facebook账号设置了严格的隐私限制,比如不允许公开自己的评论关联信息,那API确实拿不到这个用户的
reviewer数据,这种情况属于正常限制,没法突破用户的隐私设置。检查API版本兼容性:不同Graph API版本对字段的支持可能有变化,建议用当前的稳定版本(比如v18.0),别用太旧的版本,有些老版本可能已经不再支持
reviewer字段的获取。确认应用模式:如果你的应用还在开发模式,只有添加到应用测试列表的用户和页面能返回完整数据,普通公开页面的评论是拿不到
reviewer信息的,切换到上线模式前一定要确保权限审核通过。
你可以先在Graph API Explorer里测试请求,这样能快速排查是权限问题还是请求格式的问题,比直接写代码调试高效多了。
内容的提问来源于stack exchange,提问作者Sergiy M.

