Facebook SDK没有收到电子邮件

时间:2014-07-03 18:10:30

标签: ios cocoa-touch facebook-graph-api

我整天都对这件事感到恼火。我已经关注了所有文档并阅读了有关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权限也很有用。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

事实证明,您需要有一个确认的电子邮件地址才能收到电子邮件。有道理。