我正在使用解析在我的iOS应用中注册来自facebook的用户。这是我登录按钮中的代码:
PFFacebookUtils.logInWithPermissions(["public_profile", "email", "user_friends"], {
(user: PFUser!, error: NSError!) -> Void in
用户点击后,Facebook应用或Safari会打开。在用户输入电子邮件和密码后,它会告诉他们应用程序将看到他们的公开个人资料,电子邮件,朋友。
到目前为止,一切似乎都很好。从Parse中检索用户信息时出现问题:
<PFUser: 0x7fcd3ae5cae0, objectId: irrEruRILF, localId: (null)> {
username = LeFJc8ErtMLHqLmsonfNXq8Ck;
}
正如你所看到的,它给了我&#34; username = LeFJc8ErtMLHqLmsonfNXq8Ck&#34;但它没有任何个人资料或电子邮件地址......我缺少什么?
答案 0 :(得分:0)
PFUser
不等同于Facebook用户。您需要查询Graph API以从Facebook检索数据。
登录后尝试调用此方法:
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
// handle response
}];
答案 1 :(得分:0)
我通过首先使用权限打开会话来修复它
FBSession.openActiveSessionWithReadPermissions(["public_profile", "email", "user_friends"], allowLoginUI: true, completionHandler: {
(session:FBSession!, state:FBSessionState, error:NSError!) in
PFFacebookUtils.logInWithPermissions(["public_profile", "email", "user_friends"], block: { user, error in
FBRequestConnection.startForMeWithCompletionHandler({connection, result, error in
// Then I access the user data like this:
var loginResults = result as! NSDictionary
var facebookID = loginResults["id"] as! String
var firstName = loginResults["first_name"] as! String
....
})
})
})