我怎样才能得到用户信息使用Facebook的SDK 4.1在iOS?

我正在使用Facebook集成版本2.3的预build的loginUIButton。

问题:获取用户详细信息时得到空结果。

-(void) loginButton:(FBSDKLoginButton *)loginButton didCompleteWithResult:(FBSDKLoginManagerLoginResult *)result error:(NSError *)error { if ([FBSDKAccessToken currentAccessToken]) { FBSDKGraphRequest *request =[[FBSDKGraphRequest alloc]initWithGraphPath:@"me" parameters:nil]; [request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { // Handle the result NSLog(@"%@",result); }]; FBSDKProfile *profile = [[FBSDKProfile alloc]init]; } } 

试试这个代码:

AppDelegate.m

 - (void)applicationDidBecomeActive:(UIApplication *)application { [FBSDKAppEvents activateApp]; //Default FB Button [[NSNotificationCenter defaultCenter]postNotificationName:@"getFacebookData" object:nil]; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation]; } 

viewController的ViewDidLoad

 [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(getFacebookData) name:@"getFacebookData" object:nil]; FBSDKLoginButton *loginButton = [[FBSDKLoginButton alloc] init]; loginButton.center = self.view.center; [self.view addSubview:loginButton]; 

在视图控制器中添加此方法

 - (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); } }]; } } 

请按照这个,你会得到你的答案获取个人资料照片 –

 FBSDKProfilePictureView *profilePictureview = [[FBSDKProfilePictureView alloc]initWithFrame:_imageView.frame]; [profilePictureview setProfileID:result[@"id"]]; [self.view addSubview:profilePictureview]; 

获取个人资料照片和电子邮件信息

 [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"picture, email"}] startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id res, NSError *error) { if (!error) { NSString *pictureURL = [NSString stringWithFormat:@"%@",[res objectForKey:@"picture"]]; NSLog(@"the EMail = %@", [res objectForKey:@"email"]); NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:pictureURL]]; _imageView.image = [UIImage imageWithData:data]; } else { NSLog(@"%@", [error localizedDescription]); }}];