在 Facebook 上使用 ParseUI 时丢失电子邮件 login/signup

Missing e-mail when using ParseUI with Facebook login/signup

我正在使用 ParseUI 框架的 PFLogInViewController。我有两个关于框架内 Facebook 登录电子邮件的问题:

1) 通过 Facebook 注册时,我看到新用户的电子邮件字段是 'undefined.' 如何获取用户的电子邮件地址?

2) 如果我能够获取电子邮件地址,parse 的应用程序设置 'emailVerified' 是否仍会在 Facebook 注册时向用户发送验证电子邮件?如果不行,怎么办?

谢谢。

为了读取用户的电子邮件地址,您需要将电子邮件添加到您请求的 Facebook 权限数组中。查看有关此 https://www.parse.com/tutorials/login-and-signup-views#properties

的 Parse 教程

在您的情况下,您需要像这样添加 @"email"

[logInViewController setFacebookPermissions:[NSArray arrayWithObjects:@"friends_about_me", @"email", nil]];

然后当您从 Facebook 请求用户信息时,您将能够访问用户的电子邮件地址:

FBRequest *request = [FBRequest requestForMe];
        [request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {

            if (!error) {
                // Now you can access user's email
                NSString *email = result[@"email"];
                if (email) {
                    // Save it to your email field in Parse
                }
            }
        }];

关于你问题的第 2 部分,我不太熟悉 Parse 支持的电子邮件验证功能,但看看这个(公认的旧)响应 https://www.parse.com/questions/email-verification-emails-going-out-to-facebook-users Parse 似乎甚至会验证电子邮件地址当用户使用 Facebook 登录时。