将实际用户名从PFFacebookUtils上传到Parse Cloud的方法是什么?

时间:2015-04-16 10:10:59

标签: facebook parse-platform

我的[PFFacebookUtils logInWithPermissions]是这样的:

NSArray *permissionsArray = @[@"user_about_me"];
[PFFacebookUtils logInWithPermissions:permissionsArray block:^(PFUser *user, NSError *error) {

if (!user) {
 NSLog(@"Uh oh. The user cancelled the Facebook login.");
 } else if (user.isNew) {

 } else {
 NSLog(@"User logged in through Facebook!");
 } }];

问题是该方法上传了类似于“St42o7PejDRh6scvMJylgOxGQ”的用户名。我想要的是上传Facebook的真实用户名,以及Facebook密码和其他相关领域。

编辑:使用用户名我具体是指姓名,姓氏和电子邮件,如果可能的话!

2 个答案:

答案 0 :(得分:0)

Graph API使用OAuth作为身份验证机制,因此无法获取用户名和密码。

答案 1 :(得分:0)

不确定这对你来说是否还是一个问题,但是因为Facebook从他们的API中删除了这个功能,你无法像以前那样访问它,比方说PFUser 例如:

NSString *userName = [[PFUser user] username];

CAN 所做的是打开Facebook Graph API请求,以便检索此类信息:

1)首先设置你想从Facebook获得的参数:(这里我刚刚做了FB id,用户名和电子邮件)

NSMutableDictionary* parameters = [NSMutableDictionary dictionary];
[parameters setValue:@"id,name,email" forKey:@"fields"];

2)只需调用Facebook Graph API并请求您需要的信息:

FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil];
    [request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
        if (!error) {
            NSLog(@"Facebook Graph API user: %@", result);
        }
    }];

3)这是你应该得到的:(出于安全原因,我已经用通用指针替换了个人信息)

2015-11-15 18:52:18.204 YOURAPPNAME[60800:18917239] Facebook Graph API user: {
    id = <the user id>;
    name = "Full User Facebook Name";
    email = "user@email.com";
}

希望这可以帮助您获得所需的信息!如果为时已晚,也许这将有助于未来的其他人