Twitterで投稿するときなど
URL短縮を短縮したい場合はbit.lyを使うと簡単。
bit.lyでアカウントを作成して
API Keyをコピーしておく。
JSONでとってくるのでSBJSONを入れておく。
あとXCode4.2以降は例のごとくARCでなんちゃらかんちゃらなので
__bridge を入れないと怒られる。
- (NSString *)getShortUrl { NSString *userName = @"USER_NAME"; NSString *apiKey = @"API_KEY"; NSString *escaped = (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes( NULL,(__bridge CFStringRef)@"短縮させたいURL", NULL,(__bridge CFStringRef)@"!*'();:@&=+$,/?%#[]",kCFStringEncodingUTF8); NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://api.bit.ly/v3/shorten?&login=%@&apiKey=%@&longUrl=%@", userName, apiKey, escaped]]; NSString *result = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; NSDictionary *dic = [result JSONValue]; if ([[dic objectForKey:@"status_code"] intValue] == 200) { return [[dic objectForKey:@"data"] objectForKey:@"url"]; } return nil; }
エンコードの仕方、というか正規表現のとこは人によってまちまちなので
信頼をおいている人のをありがたく拝借する。
以前はgoo.glを使っていたのだけれど、
めんどくさいのでbit.lyの方が容易なのでおすすめです。
参考:bit.lyのREST APIを使って短縮URLを作成する方法(改訂版)