添加pages_user_*权限时Facebook JS SDK登录报错问题
问题原因及解决办法
- 问题核心:
pages_user_locale、pages_user_gender、pages_user_timezone属于页面专属访问权限,无法通过FB.login直接向用户请求授权。这类权限是用于通过页面访问令牌获取关联用户信息的,并非让用户主动授权给应用的权限类型。 - 解决操作:
- 将这三个权限从
FB.login的scope参数中移除,登录流程即可恢复正常。 - 若确实需要获取这类用户信息,需先通过
pages_show_list权限获取用户管理的页面列表,再拿到对应页面的访问令牌,最后用该令牌调用Graph API(比如/{page-id}/user_locale)来获取相关数据。
- 将这三个权限从
- 修正后的示例代码:
FB.login((loginResponse) => { // 登录成功后的处理逻辑 }, { scope: "public_profile,email,pages_messaging,pages_messaging_phone_number,pages_show_list,pages_manage_metadata,instagram_basic,instagram_manage_messages,pages_read_engagement,business_management,catalog_management", return_scopes: true });
内容的提问来源于stack exchange,提问作者M3sca
相关产品推荐
相关产品推荐

