ios - Facebook 不返回电子邮件

标签 ios facebook facebook-graph-api

我正在努力从 Facebook 检索电子邮件。它应该很简单,但我不知道为什么它不返回。下面是代码。

- (IBAction)loginClicked:(id)sender {
    FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
    [login
     logInWithReadPermissions: @[@"email", @"public_profile"]
     fromViewController:self
     handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
         if (error) {
             NSLog(@"Process error");
         } else if (result.isCancelled) {
             NSLog(@"Cancelled");
         } else {
             NSLog(@"Logged in");
             [self getUserInfo];
         }
     }];
}

-(void) getUserInfo {
    if ([FBSDKAccessToken currentAccessToken]) {
                [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"id, name, first_name, last_name, picture.type(large), email"}]
     startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
         if (!error) {
             NSLog(@"fetched user:%@", result);
         }
     }];

    }
}

这是检索除电子邮件以外的所有其他字段。

最佳答案

根据 facebook documentation

This field will not be returned if no valid email address is available.

可以在不提供电子邮件地址的情况下注册 facebook。可以改用手机号码。一位 facebook 工程师也提供了完整的解释: https://developers.facebook.com/bugs/298946933534016

关于ios - Facebook 不返回电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34515282/

相关文章:

ruby-on-rails - 通过 API 作为页面发布到 Facebook 页面(具有管理员权限)

wordpress - 无效范围 : publish_actions, manage_pages、publish_pages、user_managed_groups、user_posts、user_photos

ios - 使用 UICollectionViewCell 作为按钮

ios - 收到错误不支持的授权类型?

ios - fileManager.createFileAtPath 总是失败

android - watchman:加载共享库时出错:libpcre.so.1

c# - Facebook CSharp Api 使用图形 api 获取其他用户提要,问题

Android ParseFacebookUtils.login 回调,返回具有空 objectId 的用户

android - Facebook登录来自android中的多个 Activity

android - Facebook Android SDK 4.1+