如何使用iOS中的Twitter Kit / Fabric从login的用户获取用户个人资料图像

我正在使用Fabric以便在我的应用程序中添加“使用Twitterlogin”button。 login过程中工作正常,但我不知道如何(如果可能)如何获取login的用户的个人资料图像。

TWTRSession里面有这个信息的任何属性(如userName和userID)? 看着它,但我没有find什么?

[TWTRLogInButton buttonWithLogInCompletion:^(TWTRSession *session, NSError *error) { // I get user data here... // and need to get user Twitter's profile image }]; 

谢谢

编辑

感谢sak的回答,我想出了如何做到这一点。

 [TWTRLogInButton buttonWithLogInCompletion:^(TWTRSession *session, NSError *error) { [[[Twitter sharedInstance] APIClient] loadUserWithID:session.userID completion:^(TWTRUser *user, NSError *error) { NSLog(@"User image %@", user.profileImageURL); }]; }]; 

我不认为TWTRSession对象具有用户的图像,但是您可以使用会话来请求一个TWTRUser对象,并且这将具有您所需要的。

对于那些得到这个错误的人:

 Value of type 'Twitter' has no member 'APIClient' 

这帮助了我,

 let twitterClient = TWTRAPIClient(userID: userID) twitterClient.loadUserWithID(userID) { (user:TWTRUser?, error:NSError?) in print(user?.profileImageURL) } 

迅速做到这一点的方法如下:

 Twitter.sharedInstance().APIClient.loadUserWithID( session.userID ) { (user, error) -> Void in if( user != nil ) { println( user.profileImageURL ) } } 

我希望这有帮助。

尝试这个:

 TWTRLogInButton *logInButton = [TWTRLogInButton buttonWithLogInCompletion:^(TWTRSession *session, NSError *error) { // play with Twitter session if (session) { NSLog(@"Twitter signed in as -> name = %@ id = %@ ", [session userName],[session userID]); /* Get user info */ [[[Twitter sharedInstance] APIClient] loadUserWithID:[session userID] completion:^(TWTRUser *user, NSError *error) { // handle the response or error if (![error isEqual:nil]) { NSLog(@"Twitter info -> user = %@ ",user); NSString *urlString = [[NSString alloc]initWithString:user.profileImageLargeURL]; NSURL *url = [[NSURL alloc]initWithString:urlString]; NSData *pullTwitterPP = [[NSData alloc]initWithContentsOfURL:url]; UIImage *profImage = [UIImage imageWithData:pullTwitterPP]; } else { NSLog(@"Twitter error getting profile : %@", [error localizedDescription]); } }]; } else { NSLog(@"Twitter error signed in : %@", [error localizedDescription]); } }]; logInButton.center = self.view.center; [self.view addSubview:logInButton]; 

尝试下面的代码来获取个人资料图片

Swift 3

 let twitterClient = TWTRAPIClient(userID: session?.userID) twitterClient.loadUser(withID: (session?.userID)!, completion: { (user, error) in print(user!.profileImageURL) }) 
  [[[Twitter sharedInstance] APIClient] loadUserWithID:[session userID] completion:^(TWTRUser *user, NSError *error) { }]; 

这里是我如何获得userId,userName,authToken,authTokenSecret和profileImageURL

 [[Twitter sharedInstance] logInWithCompletion:^(TWTRSession *session, NSError *error) { if (session != nil) { SPTWUser *user = [[SPTWUser alloc] init]; user.userID = session.userID; user.userName = session.userName; user.authToken = session.authToken; user.authTokenSecret = session.authTokenSecret; TWTRAPIClient *client = [[TWTRAPIClient alloc] initWithUserID:user.userID]; [client loadUserWithID:user.userID completion:^(TWTRUser * _Nullable user, NSError * _Nullable error) { NSLog(@"%@",user.profileImageURL); }]; } }]; 

参考TWTRAPIClient类 , TWTRUser类 , TWTRSession类