【问题标题】:How to get user's email with Facebook SDK 3.1 on iOS?如何在 iOS 上使用 Facebook SDK 3.1 获取用户的电子邮件?
【发布时间】:2012-11-20 22:22:27
【问题描述】:

我正在使用电子邮件权限打开 facebook 会话,如下所示:

- (void)facebookOpenSession {
    NSArray *permissions = @[@"email"];
    [FBSession openActiveSessionWithReadPermissions:permissions
                                       allowLoginUI:YES
                                  completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
        [self sessionStateChanged:session state:state error:error];
    }];
}

然后会话状态的重要sn-p改变如下:

- (void)sessionStateChanged:(FBSession *)session
                      state:(FBSessionState) state
                      error:(NSError *)error {
    switch (state) {
        case FBSessionStateOpen: {
            [[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
             if (error) {
                //error
             } else {
                 self.myFirstNameLabel.text = user.first_name;
                 self.myLastNameLabel.text = user.last_name;
                 // self.myEmailLabel.text = @"";
             }
         }];
    }
    ...

我如何实际提取用户的电子邮件?它是在提供的变量之一中,还是我必须在完成处理程序中进行另一个调用?

提前致谢!

【问题讨论】:

    标签: objective-c ios facebook


    【解决方案1】:

    FBGraphUser 没有该属性(我假设是因为它是可选的/仅在您请求电子邮件权限时才可用),但您仍然应该能够像这样从字典中访问它:

    [user objectForKey:@"email"]
    

    【讨论】:

      【解决方案2】:

      你应该在询问正确的权限之前检查

      loginView.readPermissions = @[@"public_profile", @"email"];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-02-04
        • 1970-01-01
        • 1970-01-01
        • 2023-04-01
        • 2011-12-10
        • 2014-08-30
        • 1970-01-01
        相关资源
        最近更新 更多