bit.lyのREST APIを使って短縮URLを作成する方法


注:本記事はbit.lyのAPIのバージョン2を使った方法であるが、現在の最新はバージョン3である。最新のバージョンに対応した方法は「bit.lyのREST APIを使って短縮URLを作成する方法(改訂版) - Tomute’s Notes」でどうぞ。


iPhoneアプリTwitter連携機能を持たせようとした場合等に、短縮URLを作成する必要が出て来たりすると思うのだが、bit.lyのREST APIを使ってその短縮URLを作成する方法をメモしておく。


[準備]
その1:APIキーの取得
bit.lyのREST APIを利用するにはAPIキーが必須のため、そのAPIキーを取得する。取得方法は非常に簡単で、bit.lyのユーザアカウントを作成するだけでOKである。アカウント作成後にbit.lyのAccountページに行くとAPIキーが表示されているのでそれを利用する。

その2:JSONパーサーのダウンロード
bit.lyのREST APIはデフォルトではJSON形式でレスポンスを返すため(XML形式も選択可)、JSONパーサーを利用するのが良いと思われる。今回私はjson-frameworkを利用した。なおこのjson-frameworkの使い方に関しては「[iPhone] JSON Framework の使い方(準備編) | Sun Limited Mt.」が参考になる。


以上で準備は完了。


[利用方法]
bit.lyのREST APIを使って短縮URLを作成する具体的な方法は以下のような形である。

// URLはURL encodingされている必要有
NSString *longURL = @"http://d.hatena.ne.jp/tomute/";
NSString *userName = @"tomute";
NSString *apiKey = @"XXXXXXXXXX";
NSString *baseURLString = @"http://api.bit.ly/shorten?version=2.0.1&longUrl=%@&login=%@&apiKey=%@";
NSString *urlString = [NSString stringWithFormat:baseURLString, longURL, userName, apiKey];
NSURL *url = [NSURL URLWithString:urlString];

NSError *error;
NSString *results = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];
NSDictionary *dic = [results JSONValue];

if ([[dic objectForKey:@"errorCode"] intValue] == 0) {
    NSString *shortURL = [[[dic objectForKey:@"results"] objectForKey:longURL] objectForKey:@"shortUrl"];
}


[参考記事]