我尝试从已登录的Facebook用户获取至少id,用户名和电子邮件。我首先使用权限类型:电子邮件登录。如果成功尝试获取一个FBSDKGraphRequest,它将返回每个可能的值,但会发送电子邮件。FBSDK findByGraphPath(me)即使有权限和显式字段也不会返回电子邮件
我尝试添加像public_profile这样的权限,但无论如何我尝试了,我没有收到电子邮件。我查看了开发人员仪表板,并且电子邮件似乎被默认批准。
FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
[loginManager logInWithReadPermissions:@[@"email"] fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
return;
} else if (result.isCancelled) {
return;
}
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"id, name, gender, first_name, last_name, locale, email"}];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
return;
}
NSLog(@"Fetched user: %@", result);
}];
}];
请记住,一个)不是与Facebook(FE当他们注册使用他们的移动电话),和b)的电子邮件地址才会返回文件中的每个用户_has_和电子邮件地址,如果用户有验证它。 – CBroe
ouch,发现情况是这样;) – sjors