TWRequestを使って画像とテキストを一緒に送る

TWTweetComposeViewControllerを使うとaddImageすれば画像も投稿できるようになるのですが、
TWRequestだと少し工夫が必要なようです。

TWRequest *postRequest = [[TWRequest alloc] initWithURL:[NSURL URLWithString:@"https://upload.twitter.com/1/statuses/update_with_media.json"] parameters:nil requestMethod:TWRequestMethodPOST];
NSData *myData = UIImagePNGRepresentation(img);
[postRequest addMultiPartData:myData withName:@"media" type:@"image/png"];
myData = [[NSString stringWithFormat:@"Any status text"] dataUsingEncoding:NSUTF8StringEncoding];
[postRequest addMultiPartData:myData withName:@"status" type:@"text/plain"];

initする時にURLをapi.twitter.com/1/statuses/update_with_media.jsonに変えて、パラメータをnilにしておき、
addMultiPartDataを使って必要なデータを増やしていきます。

で、ほぼ同じ方法が公式のドキュメントにあったりして、 こちらだとtypeはmediaでもstatusでもmultipart/form-dataなんですよね。
update_with_mediaのページ にはmultipart/form-dataを使ってねと書いてあるので、こっちが正しいのかもしれません。

元ネタ
Use TWrequest to send an image with a text to Twitter in IOS5 – Stack Overflow

コメントを残す