0

我在我的应用程序(SDK 3.5)中有一个 facebook 登录,并且想要获取用户的电子邮件。这是我的“核心”登录代码,我相信我正在设置要请求的正确权限:

NSArray *permissions = [NSArray arrayWithObjects:@"email", @"user_location", nil];

[FBSession openActiveSessionWithReadPermissions:permissions allowLoginUI:YES completionHandler:
 ^(FBSession *session, FBSessionState state, NSError *error) {
     // some code here
 }];

现在,当我尝试从他们的 /me 数据中读取用户的电子邮件时,它实际上适用于大多数用户。除了一些,我仍然没有收到电子邮件。

我在这里错过了什么吗?我想当用户批准这个请求时,我总是会得到一个电子邮件地址(即使它是匿名的电子邮件)。或者是否有一个简单的 Facebook 设置,用户可以完全关闭它?

4

1 回答 1

5

我浏览了 Facebook 文档,因为我遇到了同样的障碍:

注意:如果用户没有可用的有效电子邮件地址,则不会返回此字段

来源:https ://developers.facebook.com/docs/reference/api/user/

因此,当电子邮件地址无效时(例如,多年未使用 facebook 并销毁/更改其电子邮件地址的用户),facebook 可能会停止返回此字段。

5% - 7% 的无效地址可能听起来很烦人,但是当我查看我的 Facebook 朋友时,我认为超过 10% 的人已经停止使用他们的帐户,所以我认为如果我没有得到他们的地址也不是问题.

于 2013-08-23T05:34:38.680 回答