iOS-Facebook SDK v.4.5.1-获取用户名和电子邮件
我正在将Facebook登录集成到我的应用程序中。SDK安装得非常完美-我已经测试了所有东西。我也能够完美地登录和注销。 但现在最重要的部分是:我不知道如何获取我需要的数据(用户名、电子邮件地址等) 我当前在头文件中声明了LoginButtoniOS-Facebook SDK v.4.5.1-获取用户名和电子邮件,ios,facebook,login,Ios,Facebook,Login,我正在将Facebook登录集成到我的应用程序中。SDK安装得非常完美-我已经测试了所有东西。我也能够完美地登录和注销。 但现在最重要的部分是:我不知道如何获取我需要的数据(用户名、电子邮件地址等) 我当前在头文件中声明了LoginButton @property (strong, nonatomic) IBOutlet FBSDKLoginButton *loginButton; 然后我的主文件中有: loginButton = [[FBSDKLoginButton alloc] i
@property (strong, nonatomic) IBOutlet FBSDKLoginButton *loginButton;
然后我的主文件中有:
loginButton = [[FBSDKLoginButton alloc] init];
loginButton.delegate = self;
loginButton.readPermissions =
@[@"public_profile", @"email", @"user_friends"];
[self.view addSubview:loginButton];
我还实现了我需要的两个方法——它们被正确地调用了
- (void) loginButton: (FBSDKLoginButton *)loginButton
didCompleteWithResult: (FBSDKLoginManagerLoginResult *)result
error: (NSError *)error{
NSLog(@"facebook login button test");
}
- (void) loginButtonDidLogOut:(FBSDKLoginButton *)loginButton{
NSLog(@"facebook logout button test");
}
下一步是什么?所有在线教程都已过时或使用Swift。我主要需要知道用户的姓名、电子邮件以及他是否登录(稍后)
非常感谢。您可以通过以下方法获得它
- (void)getFacebookData{
if ([FBSDKAccessToken currentAccessToken]) {
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"first_name, last_name, picture.type(large), email, name, id, gender"}]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if (!error) {
NSLog(@"fetched user:%@", result);
}
}];
}
}
然后调用这个方法,如下所示
- (void) loginButton: (FBSDKLoginButton *)loginButton
didCompleteWithResult: (FBSDKLoginManagerLoginResult *)result
error: (NSError *)error{
NSLog(@"facebook login button test");
[self getFacebookData];
}
通过这种方式,您可以获得有关用户的所有信息。您可以查看以下答案:非常感谢Piyus,它工作得非常好。在getFacebookData中,例如如何从“结果”中获取第一个名称?能否告诉我NSLog(@“获取的用户:%@”,结果)的日志是什么?没关系,我找到了解决方案,我只需要重新创建字典:NSDictionary*userData=(NSDictionary*)result;