我正在使用以下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);
我在这里错过了什么......?
答案 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