我整天都对这件事感到恼火。我已经关注了所有文档并阅读了有关Stack Overflow的所有问题 - 但我无法使用最新的FB SDK获取该死的电子邮件地址。
我的代码是:
ImpLog(@"Signupweh...");
if(fbSession == nil) {
fbSession = [[FBSession alloc] initWithAppID:@"XXXX"
permissions:@[@"email", @"user_birthday", @"publish_stream", @"offline_access"]
defaultAudience:FBSessionDefaultAudienceEveryone
urlSchemeSuffix:@"xxxx"
tokenCacheStrategy:nil];
ImpLog(@"Setting active session");
[FBSession setActiveSession:fbSession];
}
[FBSession setDefaultAppID:@"xxxx"];
[FBSession openActiveSessionWithReadPermissions:@[@"email", @"user_birthday", @"publish_stream", @"offline_access"] allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
ImpLog(@"Contents: %@ | Error: %@ | Denied: %@\n",session.description, error.description, session.declinedPermissions);
if(status == FBSessionStateOpen || FBSessionStateCreated) {
ImpLog(@"Open session!");
} else {
ImpLog(@"Not open");
}
FBRequest* loginRequest = [FBRequest requestForMe];
[loginRequest startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser>* result, NSError *error) {
NSDictionary* uData = (NSDictionary*)loginRequest;
ImpLog(@"Got data:\n%@",result);
ImpLog(@"Got me (%@) with mail: %@", result.name, result[@"email"]);
}];
}];
我得到了
通过邮件给我(我的名字):( null)。
同样,当我打印结果内容(NSDictionary *)时,没有电子邮件。如您所见,我请求了电子邮件权限。 user_birthday权限也很有用。
有什么想法吗?
答案 0 :(得分:0)
事实证明,您需要有一个确认的电子邮件地址才能收到电子邮件。有道理。