尽管有正确的许可,但没有获得Facebook用户

Den*_*nis 0 facebook ios

我在我的应用程序(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
 }];
Run Code Online (Sandbox Code Playgroud)

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

我在这里错过了什么吗?我想当用户授予此请求时,我总是会收到一个电子邮件地址(即使它是匿名电子邮件).或者只是一个Facebook设置,用户可以完全关闭它?

ank*_*eMe 5

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

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

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

因此,当电子邮件地址变得无效时(例如,多年未使用facebook并且已经销毁/更改了他们的电子邮件地址的用户),facebook可能会停止返回此字段.

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

  • 这个答案似乎受到Sebastien C的启发_Havily_启发式:http://stackoverflow.com/questions/9347104/register-with-facebook-sometimes-doesnt-provide-email/18377407#18377407,所以它可能值得注意那. (2认同)