我正在重写一个应用程序以包含Facebook登录,我想获取用户的电子邮件地址。我已经在Session
对象中请求了权限并仔细审查它我可以看到它确实拥有此权限。但是,当我打电话时
Request.executeMeRequestAsync(session, this);
来自StatusCallback#call(...)
方法的(父Activity
实现此回调和其他回调)我没有收到电子邮件地址。
@Override
public void onCompleted(GraphUser user, Response response) {
Object emailObject = user.asMap().get("email"); //this is null
//...
}
此外,请致电
Request.executeGraphPathRequestAsync(session, "me?fields=email", this);
给了我一个OAuthException,虽然我使用的是成功获取用户的Session
。
我已经检查了Session#getPermissions()
并且我做拥有电子邮件权限。为什么我没有收到电子邮件?
答案 0 :(得分:1)
这里描述了这个问题:
https://developers.facebook.com/bugs/482815835078469/
其中一位评论者MaiKhánh写道:
我发现为什么会发生这种情况,请竖起大拇指以便能够注意到支持团队。
1 /转到此链接:https://www.facebook.com/settings?tab=account§ion=email&view。
2 /查看主电子邮件编辑表单,如果默认情况下未选中单选按钮,则会出现错误。
我认为这是因为Facebook系统有时会因Facebook帐户有超过1封电子邮件而引起混淆。
我的临时解决方案:向该帐户添加更多随机电子邮件 - >表单将要求您选择主电子邮件 - >选择主电子邮件 - >填写通行证,然后提交 - >完成。
关键是,如果您只是在不添加其他随机电子邮件的情况下检查主帐户,那么当完成所有操作后,您将返回 - >编辑表单仍未检查任何主电子邮件。
这很有用。这是Facebook的错误。