iOS:获得Facebook';使用Parse解析用户数据

iOS:获得Facebook';使用Parse解析用户数据,ios,facebook,swift,parse-platform,Ios,Facebook,Swift,Parse Platform,我正在使用parse在我的iOS应用程序中注册来自facebook的用户。这是我在“登录”按钮中的代码: PFFacebookUtils.logInWithPermissions(["public_profile", "email", "user_friends"], { (user: PFUser!, error: NSError!) -> Void in 用户点击后,facebook应用程序或safari就会打开。在用户输入电子邮件和密码后,它会告诉他们应用程序将看到

我正在使用parse在我的iOS应用程序中注册来自facebook的用户。这是我在“登录”按钮中的代码:

PFFacebookUtils.logInWithPermissions(["public_profile", "email", "user_friends"], {
        (user: PFUser!, error: NSError!) -> Void in
用户点击后,facebook应用程序或safari就会打开。在用户输入电子邮件和密码后,它会告诉他们应用程序将看到他们的公共档案、电子邮件和朋友

到目前为止,一切似乎都很顺利。从解析检索用户信息时出现问题:

<PFUser: 0x7fcd3ae5cae0, objectId: irrEruRILF, localId: (null)> {
username = LeFJc8ErtMLHqLmsonfNXq8Ck;
}
{
用户名=LeFJc8ErtMLHqLmsonfNXq8Ck;
}

正如您所见,它给了我“username=LeFJc8ErtMLHqLmsonfNXq8Ck”,但它没有任何个人资料信息或电子邮件地址。。。我缺少什么?

PFUser
与Facebook用户不同。您需要查询Graph API以从Facebook检索数据

登录后尝试调用此选项:

FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    // handle response
}];

我先用权限打开会话,解决了这个问题

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
       ....
       })

    })

})