ページ

2010年3月26日金曜日

Keychain Services 調査 (21) twitpic へ画像をアップロード(その1)調査

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

(前回)Cocoaの日々: Keychain Services 調査 (20) 認証フロー(REST向け)Keychain item 更新

さて今回からこれまで作ってきた keychain servicesを使った認証実装を使い、 twitpic へ画像をアップロードするサンプルアプリを作ってみる。

まずは調査から。

Twitpic - Share photos on Twitter

twitpic では簡単な API が用意されていて、POSTで画像をアップロードすると XMLでレスポンスが返ってくる。アップロードには multipart/form-data を使う。


METHOD: http://twitpic.com/api/uploadAndPost


Use this method to upload an image to TwitPic and to send it as a status update to Twitter.


Fields to post in
(post data should be formatted as multipart/form-data):
- media (required) - Binary image data
- username (required) - Twitter username
- password (required) - Twitter password
- message (optional) - Message to post to twitter. The URL of the image is automatically added.


Sample response:

 1111
 11111
 abc123
 http://twitpic.com/abc123
このAPIを使うと twitter への投稿も一緒にやってくれる。なお http だと username / password が盗聴/改ざんされる危険があるのが気になる。


Objective-C の実装についてはいくつか情報が見つかった。

iPhoneアプリからTwitpicに画像をアップロードする方法 - Tomute’s Notes

Using TwitPic API from ObjectiveC/iPhone - Stack Overflow

どちらも ASIHTTPRequest というライブラリを使っているようだ。

pokeb's asi-http-request at master - GitHub

READMEを引用すると:
ASIHTTPRequest is an easy to use wrapper around the CFNetwork API that makes some of the more tedious aspects of communicating with web servers easier. It is written in Objective-C and works in both Mac OS X and iPhone applications.
It is suitable performing basic HTTP requests and interacting with REST-based services (GET / POST / PUT / DELETE). The included ASIFormDataRequest subclass makes it easy to submit POST data and files using multipart/form-data.

今回 multipart/form-data で POST するので、このライブラリを使うのが便利そうだ。

(続く)