Twitter Frameworkでツイート機能の実装が容易になった
ツイート機能の実装が容易になった
iOS5でiOS SDKに追加されたTwitter Frameworkを使うと、Twitter APIを利用するiOS Appを簡単に作成することができる。従来はTwitter社にxAuth利用申請を行うなどの事前準備が必要だったが、このTwitter Frameworkを使用すると、そのような準備は必要ない。
2つの実装方法
Twitter FrameworkによるTwitter APIの利用方法は以下の2つに分類される。
- TWTweetComposeViewControllerクラスによるツイート編集・投稿機能の実現。
- TWRequestクラスによる各種APIの実行。
今回は前者について整理する。
TWTweetComposeViewControllerの大まかな利用方法
TWTweetComposeViewControllerは、MessageUI FrameworkにおけるMFMailComposeViewControllerに近いので、この2つを対比するとTWTweetComposeViewControllerの利用方法を把握しやすいだろう。どちらもメッセージを編集する画面を管理するクラスで、編集画面を表示する前に各種設定を行うことができる。TWTweetComposeViewControllerの使用例については次の記事が詳しい。
Beginning Twitter in iOS 5 Tutorial - Ray Wenderlich
まずはTWTweetComposeViewControllerのクラスメソッドcanSendTweetで、ツイートが送信可能かどうかを確認する。これは、MFMailComposeViewControllerがクラスメソッドcanSendMailで事前にメール送信可能かをチェックする点に類似している。
if ([TWTweetComposeViewController canSendTweet]) { // ここにツイート機能を実装する。 }
次に、TWTweetComposeViewControllerインスタンスを作成し、ツイートする文章を編集する画面にプリセットするテキストを設定する。
TWTweetComposeViewController *composeViewController = [[TWTweetComposeViewController alloc] init];
[composeViewController setInitialText:@"プリセットされたテキスト"];
ツイートにはURLや画像ファイルを追加することができる。ここで画像を追加し、ツイートを送信した場合には、画像が自動的にアップロードされ、ツイート本文にはpic.twitter.comから始まる画像のURLが挿入される。
[composeViewController addURL:url]; [composeViewController addImage:image];
ツイート編集終了時に行う処理を事前に指定することもできる。setCompletionHandler:にブロックを指定すればよい。
[composeViewController setCompletionHandler:^(TWTweetComposeViewControllerResult result) { if (result == TWTweetComposeViewControllerResultDone) { // ツイート完了。 } else { // ツイートがキャンセルされた。 } }];
最後に、このツイート編集画面を表示する。iOS 5.0現在ではPopoverとして表示することはできないので、Modal Viewなどで表示する。
[self presentModalViewController:composeViewController animated:YES];