iPhoneからTwitterにつぶやくコード
現在作っているプログラムの中でTwitterにつぶやく部分のコードです。
#import "NSData+Base64.h" #define POST_URL @"http://twitter.com/statuses/update.json" #define BASIC_AUTH @"ログイン名:パスワード" - (IBAction)onPushPost:(id)sender { NSString *basicAuthToken = [[BASIC_AUTH dataUsingEncoding:NSUTF8StringEncoding] base64EncodedString]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:POST_URL] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30.0]; [request setHTTPMethod:@"POST"]; [request setValue:[@"Basic " stringByAppendingString:basicAuthToken] forHTTPHeaderField:@"Authorization"]; [request setHTTPBody:[[@"status=" stringByAppendingString:[postText.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]] dataUsingEncoding:NSASCIIStringEncoding]]; NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self]; if (conn == nil) { statusLable.text = @"Connection Error"; } else { statusLable.text = @"送信中..."; [activityIndicator startAnimating]; } } - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { int statusCode = ((NSHTTPURLResponse *)response).statusCode; if ((statusCode / 100) == 2) { statusLable.text = @"送信完了"; } else { statusLable.text = [NSHTTPURLResponse localizedStringForStatusCode:statusCode]; } [activityIndicator stopAnimating]; } - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { statusLable.text = [error localizedDescription]; [activityIndicator stopAnimating]; }
このコードと関連する GUI は
- postText TwitterにポストするテキストTextView
- statusLable 状態等の表示label
- activityIndicator 動作中表示のくるくるアニメ
コードの大部分は、iPhone Dev Centerにあるサンプル SimpleURLConnections です。Base64エンコーディングのコードは Cocoa with Love: Base64 encoding options on the Mac and iPhone からダウンロードしました。
後は Google先生にもお世話になりました。