我正在努力从 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/