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

Wed*_*rda 11 twitter objective-c ios

我正在使用Fabric,以便在我的应用中添加"使用Twitter登录"按钮.登录过程工作正常,但我不知道如何(如果可能)如何获取记录用户的个人资料图像.

TWTRSession中是否有任何具有此信息的属性(如userName和userID)?看着它,但我没有找到任何东西?

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

谢谢

编辑

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

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

Zai*_*han 13

对于那些收到此错误的人:

Value of type 'Twitter' has no member 'APIClient'
Run Code Online (Sandbox Code Playgroud)

这对我有帮助,

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


小智 7

在swift中这样做的方法如下:

Twitter.sharedInstance().APIClient.loadUserWithID( session.userID ) 
{
    (user, error) -> Void in

    if( user != nil )
    {

println( user.profileImageURL )

    }
}
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助.


Abh*_*ain 7

尝试以下代码来获取个人资料图片 -

斯威夫特3

let twitterClient = TWTRAPIClient(userID: session?.userID)
    twitterClient.loadUser(withID: (session?.userID)!, completion: { (user, error) in
       print(user!.profileImageURL)
})
Run Code Online (Sandbox Code Playgroud)


sak*_*sak 6

我不认为TWTRSession对象具有用户的图像,但您可以使用该会话来请求TWTRUser对象,这将具有您所需的内容.


NSP*_*tik 6

试试这个:

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];
Run Code Online (Sandbox Code Playgroud)