在数据浏览器中解析没有 Facebook 详细信息的登录用户
Posted
技术标签:
【中文标题】在数据浏览器中解析没有 Facebook 详细信息的登录用户【英文标题】:Parse Login users without Facebook details in Data Browser 【发布时间】:2014-06-16 14:25:36 【问题描述】:我正在使用[PFFacebookUtils loginWithPermissions]
让用户在 ios 应用程序中登录 Facebook。用户没有其他登录选项。在完成块中,我调用[FBRequestConnection startForMeWithCompletionHandler]
。在第二次调用的完成块中,我将获得的数据存储到[PFUser currentUser]
对象(如用户名、电子邮件)中。 Parse 仪表板中的数据浏览器显示电子邮件中的空数据以及从 Facebook 收到的某些用户的其他信息。我有适当的条件检查来查看 API 调用是否返回任何错误。
这是代码。 Parse 数据浏览器中有许多用户没有 FBID、电子邮件和损坏的用户名。
[PFFacebookUtils logInWithPermissions:nil block:^(PFUser *user, NSError *error)
if (!user)
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Facebook error" message:@"To use you Facebook account with this app, open Settings > Facebook and make sure this app is turned on." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
else
[FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error)
if (!error)
[[PFUser currentUser] setObject:result[@"id"] forKey:kPFUser_FBID];
[[PFUser currentUser] setObject:result[@"name"] forKey:kPFUser_Username];
[[PFUser currentUser] setObject:result[@"email"] forKey:kPFUser_Email];
[[PFUser currentUser] saveInBackground];
];
];
看起来该块没有输入第二段代码(即它从 FBRequestConnection 方法中得到错误。 请帮忙!
【问题讨论】:
字段为空还是未定义?是否有来自 Facebook 的用户的电子邮件是从 Facebook 获得的,或者有电子邮件的用户是在没有 Facebook 的情况下注册的? 【参考方案1】:我想出了这里的问题。我在打电话
[PFFacebookUtils loginWithPermissions]
具有零权限并试图访问用户的电子邮件地址。在 currentUser 对象中输入空值时,Parse 崩溃。
刚刚将 nil 替换为 @"email" 权限。
感谢您的帮助。
【讨论】:
【参考方案2】:您是否记得在完成设置属性后保存当前用户?这很容易忘记。
更新:
添加一个 else 块以记录从 Facebook 调用返回的任何可能的 error
。
还可以尝试将您的 saveInBackground
更改为 saveInBackgroundWithBlock:
并检查是否有任何错误,如果数据没有显示在 Parse Data Browser 中,那么您应该首先检查。
【讨论】:
是的。我正在保存当前用户。 parse.com 数据浏览器上的 PFUser 对象不显示 fbid、用户名、电子邮件。以上是关于在数据浏览器中解析没有 Facebook 详细信息的登录用户的主要内容,如果未能解决你的问题,请参考以下文章
iOS - Facebook Connect 注销不删除登录详细信息?
如何在 android 中使用 facebook 复制 Url 获取 facebook 视频详细信息