最近Twitter熱が僕の回りでも加速してきたけど、アプリ標準機能として搭載すべく、iPhoneアプリ内でtwitterポストするためのサンプルコードを書いてみた。
Twitter API Wiki / Twitter REST API Method: statuses update
詳細は公式Wikiに譲るとして、最低限のAPI仕様は
- http://twitter.com/statuses/update.xmlへ
- ベーシック認証つきで
- POSTメソッドを使い
- statusパラメータ=「つぶやき」のリクエストを投げる
そんな条件を満たしたポストコードが以下。
- (void)update:(NSString *)tweet {
static NSString *udpateUrl = @"http://%@:%@@twitter.com/statuses/update.xml";
NSString *url;
NSString *postString;
NSMutableURLRequest *request;
url = [NSString stringWithFormat:udpateUrl, username,password];
postString = [NSString stringWithFormat:@"status=%@&source=%@",
[tweet stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding],
clientName];
url = [url stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:url]];
[request setCachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData];
[request setTimeoutInterval:20];
[request setHTTPShouldHandleCookies:FALSE];
[request setHTTPMethod:@"POST"];
if (postString) {
[request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];
}
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
} |
まず接続先URLとして
http://%@:%@@twitter.com/statuses/update.xml
を宣言。
ドメイン名前に”%@:%@”があるのは、後でそれぞれユーザ名、パスワードを挿入して、URLによるベーシック認証を行うため。
その後、つぶやき文字tweetをUTF-8でエンコードしてリクエストのBodyを用意。
BodyにはrequestのsetHTTPBodyでセット。
セットする際に、NSDataに変換するのを忘れずに。
最後にリクエストを投げてポスト完了。
事前にtwitterクライアント名を申請しておくと、パラメータsourceが有効になって、ポストしたクライアント名を送ることができるらしい。
はやりのPush Notification搭載のiTwitterはまだ「web」からの投稿扱いになってるっぽい。
ネットワーク接続エラー対応等は別で必要。
参考
takuma104’s ntlniph at master – GitHubタグ: API, iphone, NSString, objecti, objective-c, Push Notification, twitter, XML, アプリ, 変換
関連する投稿
4 Responses to “【iPhone】【Objective-C】Twitterにつぶやきをポストする”
コメント
Additional comments powered by BackType

7月 9th, 2009 at 10:53 AM
[...] 【iPhone】【Objective-C】Twitterにつぶやきをポストする | iphoneアプリで稼げるのか [...]
9月 22nd, 2009 at 2:21 AM
[...] ■iPhoneアプリでTwitterにつぶやきをポストする 【iPhone】【Objective-C】Twitterにつぶやきをポストする | iphoneアプリで稼げるのか [...]
5月 1st, 2010 at 7:09 PM
はじめまして。最近iphoneプログラミングを初めたものです。
上記のソースで質問があるのですが、clientNameにはどのような値が入るのでしょうか?
5月 4th, 2010 at 4:59 PM
clientNameは自分のアプリ名でよいと思います。
が、上記のBasic認証を使ったアクセスは6月で廃止されるので、xAuth対応することをお勧めします。