使用FBSDKLoginkit获取用户名和个人资料图片

问题描述:

我想获得用户名和个人资料图片usig FBSDKLoginKit。 如何得到它? 我的代码在这里。使用FBSDKLoginkit获取用户名和个人资料图片

荚 'FBSDKLoginKit', '〜> 4.7'

- (IBAction)fbLoginActionClicked:(id)sender 
    { 
     FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; 

     [login 
     logInWithReadPermissions: @[@"public_profile"] 
     fromViewController:self 
     handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { 
      if (error) { 
       NSLog(@"Process error"); 
      } 
      else if (result.isCancelled) 
      { 
       NSLog(@"Cancelled"); 
      } 
      else 
      { 
       NSLog(@"Logged in"); 
      } 
     }]; 
    } 
+1

请参阅此链接http://*.com/a/30275960/4536708可能会帮你。 –

使用FBSDKGraphRequest类似下面的代码来获得Facebook用户的用户名和个人资料照片。

一旦你登录,添加以下代码:

NSLog(@"Logged in"); 
      if ([result.grantedPermissions containsObject:@"public_profile"]) { 
       if ([FBSDKAccessToken currentAccessToken]) { 
        NSMutableDictionary* parameters = [NSMutableDictionary dictionary]; 
        [parameters setValue:@"name,picture.type(large)" forKey:@"fields"]; 

        [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:parameters] 
         startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { 
          if (!error) 
          { 
           NSLog(@"fetched user:%@", result); 


           NSString *name = [[result valueForKey:@"name"] lowercaseString]; 
           NSString *username = [name stringByReplacingOccurrencesOfString:@" " withString:@""]; 
           NSArray *picture_arr = [result objectForKey:@"picture"]; 
           NSArray *data_arr = [picture_arr valueForKey:@"data"]; 
           NSString *profile_pic = [data_arr valueForKey:@"url"]; 

} 

}]; 
+0

嗨..你能回答这个问题http://*.com/questions/33802803/facebook-app-invites-notification-not-working-in-ios。如果可以,请你帮助我。 –

- (IBAction)fbLoginActionClicked:(id)sender 
{ 
    FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; 

    [login 
    logInWithReadPermissions: @[@"public_profile"] 
    fromViewController:self 
    handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { 
     if (error) { 
      NSLog(@"Process error"); 
     } 
     else if (result.isCancelled) 
     { 
      NSLog(@"Cancelled"); 
     } 
     else 
     { 

      NSLog(@"Logged in %@ %@", result.token.userID, result.token.tokenString); 
      [self fetchUserInfo]; 
     } 
    }]; 
} 

-(void)fetchUserInfo 
{ 
    if ([FBSDKAccessToken currentAccessToken]) 
    { 
     NSLog(@"Token is available : %@",[[FBSDKAccessToken currentAccessToken]tokenString]); 

     [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"id, name, link, first_name, last_name, picture.type(large), email, birthday, bio ,location ,friends ,hometown , friendlists"}] 
     startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { 
      if (!error) 
      { 
       NSLog(@"resultis:%@",result); 
      } 
      else 
      { 
       NSLog(@"Error %@",error); 
      } 
     }]; 

    } 

} 

if ([FBSDKAccessToken currentAccessToken]) { 
    [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{ @"fields" : @"id,name,picture.width(100).height(100)"}]startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { 
     if (!error) { 
      NSString *nameOfLoginUser = [result valueForKey:@"name"]; 
      NSString *imageStringOfLoginUser = [[[result valueForKey:@"picture"] valueForKey:@"data"] valueForKey:@"url"]; 
      NSURL *url = [[NSURL alloc] initWithURL: imageStringOfLoginUser]; 
      [self.imageView setImageWithURL:url placeholderImage: nil]; 
     } 
    }]; 
} 
+0

嗨..你能回答这个问题http://*.com/questions/33802803/facebook-app-invites-notification-not-working-in-ios。如果可以,请你帮助我。 –