2

我正在重写一个应用程序以包含 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(),我确实有电子邮件权限。为什么我没有收到电子邮件?

4

1 回答 1

1

此处描述了该问题:

https://developers.facebook.com/bugs/482815835078469/

其中一位评论者 Mai Khánh 写道:

我找到了发生这种情况的原因,请竖起大拇指,以便能够注意到支持团队。

1/ 转到此链接:https ://www.facebook.com/settings?tab=account§ion=email&view 。

2/ 查看Primary email editor 表单,如果单选按钮默认没有选中,就会出现bug。

我认为这是由于 facebook 系统有时会在 facebook 帐户有超过 1 封电子邮件时造成混淆。

我的临时解决方案:向该帐户添加更多随机电子邮件->表单将要求您选择主要电子邮件->选择主要电子邮件->填写密码,然后提交->完成。

关键是如果您只是检查主帐户而不添加另一个随机电子邮件,当一切完成后您会返回 -> 编辑表单仍然没有检查任何主电子邮件。

这行得通。这是一个 Facebook 错误。

于 2013-06-06T20:08:09.780 回答