You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter应用Facebook登录无法获取邮箱权限问题求助

解决Flutter Facebook登录无法获取邮箱及权限审核问题

一、先修复代码中的权限配置

默认权限仅包含public_profile,无法获取邮箱,需显式添加email权限并指定获取字段:

  1. 修改登录请求代码:
final LoginResult result = await FacebookAuth.instance.login(
  permissions: ['public_profile', 'email'], // 显式添加email权限
);
  1. 获取用户数据时指定需要的字段:
if (result.status == LoginStatus.success) {
  // 明确请求name和email字段
  final userData = await FacebookAuth.instance.getUserData(
    fields: "name,email",
  );
  print("姓名: ${userData['name']}, 邮箱: ${userData['email']}");
}

二、Facebook后台配置与权限审核问题

1. 开发模式下测试方案

开发模式下普通用户无法获取未审核的权限,需使用测试用户测试:

  • 进入Facebook应用后台 → 「角色」→「测试用户」
  • 创建测试用户,用该账号登录你的应用,此时能正常获取邮箱(无需审核)

2. 申请email权限审核的正确路径

若要让内部测试成员(非测试用户)或正式用户获取邮箱,需提交审核:

  • 进入Facebook应用后台 → 「应用审核」→「权限和功能」
  • 在搜索框输入email,找到该权限后点击「请求审核」
  • 按照要求填写:
    • 说明获取邮箱的具体用途(如身份验证、发送订单通知等,需具体明确)
    • 确保已完成商家资质验证及数据保护问卷的正确填写

3. 内部测试阶段的权限生效条件

  • 若应用处于「上线模式」但未发布,需将测试成员添加到「测试人员」列表(后台「测试」→「内部测试」)
  • 权限审核通过后,内部测试成员登录时就能获取到邮箱

三、常见排查点

  • 确认用户登录时是否弹出了「请求访问邮箱」的授权窗口,若未弹出,检查代码中permissions参数是否正确传递
  • 若开发模式下测试用户仍无法获取邮箱,检查Facebook应用后台的「设置」→「基本」中,是否正确配置了应用的包名、签名哈希值

内容的提问来源于stack exchange,提问作者Kram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 04:48:27