この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
ツイートしてみよう
前回に引き続き、Twitter Kit に触れていきたいと思います。いままでは Twitter からのデータの取得のみでしたが、今回は Twitter にツイートを投稿する処理を実装してみたいと思います。
ツイートの投稿については、容易に投稿できるよう TWTRComposer というクラスが提供されています。このクラスを利用すると、かなり簡単にツイート機能を実装することができます。
TWTRComposer を使ってみる
ということで、早速使ってみましょう。次のような実装になります。
#import "ViewController.h"
#import <TwitterKit/TwitterKit.h>
@interface ViewController ()
@property (weak, nonatomic) TWTRLogInButton *logInButton;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// TWTRLogInButtonの設定
TWTRLogInButton *logInButton = [TWTRLogInButton buttonWithLogInCompletion:^(TWTRSession *session, NSError *error) {
if (error) {
NSLog(@"Error : %@", error);
} else {
NSLog(@"UserName : %@", session.userName);
self.logInButton.hidden = YES;
[self composeTweet];
}
}];
logInButton.center = self.view.center;
self.logInButton = logInButton;
[self.view addSubview:logInButton];
}
- (void)composeTweet
{
TWTRComposer *composer = [TWTRComposer new];
[composer setText:@"ダンソン フィーザキー トゥーサフィーサーサ コンサ"];
[composer setImage:[UIImage imageNamed:@"Sample"]];
[composer showWithCompletion:^(TWTRComposerResult result) {
if (result == TWTRComposerResultCancelled) {
NSLog(@"ユーザーによりキャンセル");
} else {
NSLog(@"ツイート完了");
}
}];
}
@end
実行すると Compose ダイアログが表示されます。投稿が完了すると、Twitter の鳥の鳴き声が聞こえます。
Social フレームワークとの違い
と、ここまででお気づきの方も多いと思いますが、標準で利用できる Social フレームワークとよく似ています。以下は Social フレームワークを使った場合の実装です。
- (void)composeTweet
{
SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
[controller setInitialText:@"ダンソン フィーザキー トゥーサフィーサーサ コンサ"];
[controller addImage:[UIImage imageNamed:@"Sample"]];
[self presentViewController:controller animated:YES completion:nil];
}
で、違いはというと…ありません!投稿されたツイートの情報を見ても、両者による違いは特に見つけられませんでした。
まとめ
Fabric を利用したツイートの投稿は、Social フレームワークを触ったことがある人でも、そうでない人でも、簡単に実装できるということが分かりました。どちらを利用したほうが良いか?については、Facebook の投稿も利用する場合は Social フレームワークを、Twitter しか使う予定がない場合は Fabric を使うとまとまりが出て良いのかなぁ、という感じです。どちらも簡単に実装できるので、どっちでも良いとも思います。