URL 短縮サービス bit.ly/j.mp の API 触ってみたメモ

以前よりちらちら触れてますが、Twitter のクライアントを開発中ということで、

  • 投稿前に URL を短縮して文字数を稼ぐ
  • タイムライン上の短縮 URL のリダイレクト先へジャンプする前に URL を確認

といった機能の実装のため、API を調べて使ってみました。



@ユーザー登録
API を使用するにはユーザー登録が必要です。


http://j.mp/


bit.ly と j.mp は運営が同一ですので、どちらかで登録すれば両方使えます。
API 使用時に必要になる「API Key」は、右上「Account」のページから参照できます。



@URL を短縮する
http://api.j.mp/shorten?version=2.0.1&longUrl=(url)&login=(user_id)&apiKey=(api_key)&format=xml


こいつを GET で投げます*1
format は指定しないと json 形式で返ってくるようなので、今回は都合のいい xml 形式で返してもらいました。


 0
 
 
  
   (ハッシュ)
   
   (こっちのハッシュじゃないみたい)
   
   http://j.mp/(ハッシュ)
  

 

 OK

xml 形式だと、こういう感じで返ってきます。



@短縮 URL を戻す
http://api.j.mp/expand?version=2.0.1&shortUrl=(url)&login=(user_id)&apiKey=(api_key)&format=xml


longUrl が shortUrl になるだけです。こちらも GET で投げます。
すると以下のような結果が…


 0
 
 
  <(ハッシュ)>
   (ジャンプ先 URL)
  
 

 OK

ハッシュは英数を使用するため、先頭が数値になりえます。つまり xml として正しくありません
今回の開発では C#/.NET Framework を利用していますが、こいつの xml パーサーに通そうとすると、思いっきり例外吐きます。
ですので json 形式で取得するか、無理やり正規表現で URL を抜き取るかになりそうです。
bit.ly はお茶目さんだなあ!

*1:bit.ly を使用したい場合は、ドメイン部を「api.bit.ly」にするだけです