[iOS] Fabric 入門 #4 Twitter のユーザー情報を取得する

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Twitter ユーザーを表示

前回に引き続き、Twitter Kit に触れていきたいと思います。今回は TWTRAPIClient を使って Twitter のユーザー情報を引っ張ってきて画面上に表示します。

ユーザー情報を取得する

Twitter ユーザーの情報の取得は、TWTRAPIClient にある loadUserWithID:completion: を利用することで簡単に実装できます。なお、Twitter ユーザーを表示しているだけですので、ログイン処理は不要です。

#import "ViewController.h"
#import <TwitterKit/TwitterKit.h>

@interface ViewController () <UITableViewDataSource, UITableViewDelegate>

// Storyboardから参照
@property (weak, nonatomic) IBOutlet UIImageView *iconImageView;
@property (weak, nonatomic) IBOutlet UILabel *profileLabel;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [self loadUser];
}

- (void)loadUser
{
    TWTRAPIClient *client = [[Twitter sharedInstance] APIClient];
    [client loadUserWithID:@"220332457" completion:^(TWTRUser *user, NSError *error) {
        if (error) {
            NSLog(@"Error : %@", error);
        } else {
            if (user) {
                // ユーザー情報を View に表示する
                NSURL *url = [NSURL URLWithString:user.profileImageLargeURL];
                NSData *data = [NSData dataWithContentsOfURL:url];
                UIImage *image = [UIImage imageWithData:data];
                self.iconImageView.image = image;
                self.profileLabel.text = [NSString stringWithFormat:@"userID : %@\nscreenName: %@\nname : %@", user.userID, user.screenName, user.name];
            }
        }
    }];
}

@end

loadUserWithID:completion: の第一引数には Twitter ユーザーの ID を渡します。取得できた場合、第二引数で渡したブロックで TWTRUser インスタンスが取得できます。なお、TWTRTweetView のような View は用意されていませんので、自分で実装していく必要があります(View の作成方法については割愛します)。

TWTRUser には次のようなプロパティがあります。

プロパティ名 説明
userID Twitter ユーザー ID NSString
name Twitter ユーザー名 NSString
screenName 表示名 NSString
isVerified Twitter で認証されているかどうか BOOL
isProtected Twitter で保護されているかどうか BOOL
profileImageURL プロフィール画像の URL NSString
profileImageMiniURL プロフィール画像の URL (小) NSString
profileImageLargeURL プロフィール画像の URL (大) NSString
formattedScreenName @ を付けた表示名 NSString

実行するとこんな感じになります。

show-twitter-user

ちなみに今回確認のため利用させていただいた、この方は明日誕生日らしいです(たまたま知った)。おめでとうございます。

まとめ

Twitter でログイン中のユーザー情報を表示することはもちろん、ある特定のユーザー情報をアプリ上のコンテンツとして表示するときなどにも使えそうですね。