Ios 使用解析API将用户名设置为Facebook名称。

Ios 使用解析API将用户名设置为Facebook名称。,ios,parse-platform,Ios,Parse Platform,目前,这是我的LogInViewController中的代码,其中包含Facebook注册过程的处理程序和我希望将用户名和电子邮件地址设置为他们的Facebook名称和电子邮件地址的代码 - (IBAction)fbButtonPressed:(id)sender { NSArray *permissions =@[@"public_profile", @"email", @"user_friends"]; [PFFacebookUtils logInWithPermissio

目前,这是我的LogInViewController中的代码,其中包含Facebook注册过程的处理程序和我希望将用户名和电子邮件地址设置为他们的Facebook名称和电子邮件地址的代码

- (IBAction)fbButtonPressed:(id)sender
{
    NSArray *permissions =@[@"public_profile", @"email", @"user_friends"];

    [PFFacebookUtils logInWithPermissions:permissions block:^(PFUser *user, NSError *error) {
        if (!user) {
            NSLog(@"Uh oh. The user cancelled the Facebook login.");
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Log In Error" message:@"Uh oh. The user cancelled the Facebook login." delegate:nil cancelButtonTitle:nil otherButtonTitles:@"Dismiss", nil];
            [alert show];
        } else if (user.isNew) {
            NSLog(@"User signed up and logged in through Facebook!");
            FBRequest *request = [FBRequest requestForMe];
            [request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                if (!error){
                    NSDictionary *userData = (NSDictionary *)result;

                    NSString *facebookID= userData[@"ID"];

                    NSURL *pictureURL = [NSURL URLWithString:[NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?type=large&return_ssl_resources=1", facebookID]];


                    NSMutableDictionary *userProfile = [NSMutableDictionary dictionaryWithCapacity:7];

                    if (facebookID){
                        userProfile[@"facebookID"] = facebookID;
                    }

                    if (userData[@"name"]) {

                        user.username = userProfile[@"name"];
                    }

                    if (userData[@"email"]){
                        user.email = userData[@"emai"];
                    }


                    [user saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
                        if (error){
                            NSLog(@"ERROR: %@ %@", error, [error userInfo]);

                        }else{
                            [self.navigationController popToRootViewControllerAnimated:YES];
                        }
                    }];



                }
            }];


        } else {
            NSLog(@"User logged in through Facebook!");
            [self.navigationController popToRootViewControllerAnimated:YES];
        }
    }];
}
你打字有误

user.email = userData[@"emai"];
此外,对于名称,请尝试从userProfile获取名称:

if (userData[@"name"]) {
  user.username = userProfile[@"name"];
}
应该是哪一个

if (userData[@"name"]) {
  user.username = userData[@"name"];
}
试试这个

PFUser *user = [PFUser currentUser];
FBRequest *request = [FBRequest requestForMe];
[request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
    NSLog(@"test");
    if(!error) {
        NSDictionary *userData = (NSDictionary *)result;
        NSString *name = userData[@"name"];
        user.username = name;
        NSLog(@"user:%@", name);
        [user saveEventually];
    } else {
        NSLog(@"An error occurred: %@", error.localizedDescription);
    }
}];

我做了更改,FB用户名设置为clo5cdihepploulqa7mbfmn8。我试图记录用户数据,但我没有得到一个日志。我想知道代码是否正在运行。我正在从Facebook上删除应用程序,这样它就可以清除用户,并从解析中删除。