ios - Parse.com - 在使用 Facebook 身份验证时更新 PFUser 的电子邮件

标签 ios objective-c facebook-graph-api permissions parse-platform

我在通过 Facebook 登录或注册时正确接收 PFUser。我的权限数组:

NSArray *permissionsArray = @[ @"user_about_me",@"email"];

在 Parse Data 浏览器中,我可以看到使用一些长字符串用户名和正确的 authData 等创建了一个用户。但是电子邮件字段仍然是空的。

我是否需要单独调用来为新创建的 PFUser 填写电子邮件字段?如果是,那么正确的步骤是什么。

另一个问题,Parse.com 中的 facebook 身份验证用户的忘记密码机制如何工作?我是否需要先通过调用图形 API 来填充电子邮件值,然后使用该电子邮件地址来实现忘记密码功能?

最佳答案

您需要单独调用来填充电子邮件属性。用户通过身份验证后,您可以调用 startForMeWithCompletionHandler: 方法 FBRequestConnection 类获取用户信息,然后保存到当前用户。您的调用应如下所示:

NSArray *permissionsArray = @[ @"user_about_me",@"email"];
[PFFacebookUtils logInWithPermissions:permissionsArray block:^(PFUser *user, NSError *error) {
    if (!error && user) {
        [FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
            if (!error) {
                [[PFUser currentUser] setObject:[result objectForKey:@"email"]
                                         forKey:@"email"];
                [[PFUser currentUser] saveInBackground];
            }
        }];
    }
}];

关于Facebook用户的忘记密码,没有意义,因为如果用户忘记了密码,就应该在Facebook上修改。但是,如果您调用 requestPasswordResetForEmail: 方法,由于电子邮件存在,它会向用户发送更改密码的说明。考虑到 logInWithUsername:password: 使用属性 username 来登录用户,而不是电子邮件,并且您的应用中的 Facebook 用户可能不知道该值.

关于ios - Parse.com - 在使用 Facebook 身份验证时更新 PFUser 的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23603388/

相关文章:

ios - 写入文件不起作用

ios - 从不同的数组值创建不同的排列

ios - 怎么知道是哪个FBRequest发起了请求didLoad : method?

python - 使用 python 脚本检索 Facebook 页面评论

iphone - 控制函数的执行

ios - 从数组中获取字典值

ios - dispatch_async 用于从 url 获取许多图像

iphone - setContentOffset 仅在 animated 设置为 YES 时有效

ios - 找不到 Cocoapods <RestKit/RestKit.h>

ruby-on-rails - localhost 应用程序的公共(public) URL,用于 Facebook