如何在ios上获取通过Facebook登录的用户的名字?

时间:2015-12-16 19:09:50

标签: ios objective-c facebook facebook-graph-api

我正在使用以下api调用来获取用户通过Facebook登录的信息...

首先,我将此方法称为FBSDKLoginManager。

- (void)logInWithReadPermissions:(NSArray *)permissions
              fromViewController:(UIViewController *)fromViewController
                         handler:(FBSDKLoginManagerRequestTokenHandler)handler;

一旦登录成功,我会调用以下方法。

    NSMutableDictionary* parameters = [NSMutableDictionary dictionary];
    [parameters setValue:@"id,name,email,birthday,gender,education,work" forKey:@"fields"];
    [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:parameters]
                          startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id user, NSError *error) {
                              if (!error) {
                                  [[CleverTap push] graphUser:user];
                              }
                          }];

我的观点是FBSDK包含一个名为FBSDKProfile的类。 这有一些我可以使用的属性,如名字中间名和其他。我怎么才能访问这个..?因为即使在登录后,这个类的共享实例也没有给我。

NSLog(@"name %@", [FBSDKProfile currentProfile].firstName);

我在这里错过了什么......?

1 个答案:

答案 0 :(得分:2)

您只需在参数中使用 first_name

请参阅示例代码以获取名字

[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me"
                                   parameters:@{@"fields": @"first_name"}]
                   startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {

         NSString *name;
         if (!error) {
             name = result[@"first_name"];
         }
}];

如果您想要其他字段,请参阅此处的列表:https://developers.facebook.com/docs/graph-api/reference/v2.2/user