Rubyで短縮URLを展開

hugeurl

既存のものがないか探してみるとhugeurlというgemがあった。

しかし中身をちょっとのぞいてみるとTwitterのhugeurlを使っているところがなんだか微妙だ。
しかもhugeurl自体が使えなくなってるくさい?APIドキュメントにも載ってないしアクセスするとNot Foundだし。

Locationヘッダから取得する

短縮URLに問い合わせてリダイレクト先をLocationから取るというのは分かりやすい。
エラー処理を軽く追加すれば汎用的に使えて良さそうだ。

更に汎用的なもの

moski/url_expanderというgemは以下のような短縮URLにも対応している。

  • ネストされた短縮URL
  • HTMLのメタタグでリダイレクトする短縮URL

ネストされた短縮URLはbit.lyのURLが更にt.coで短縮されている、みたいなもの。これを追いかけて展開するかしないかをオプションで指定できるようになっている。

「HTMLのメタタグでリダイレクトする短縮URL」とは、短縮URLを踏むとリダイレクトサービスのページが表示されて、そこからHTMLのメタタグで本来のURLにリダイレクトする形式のもの。そんなものもあるのだね。

といったかんじで、よりきめ細かく対応してくれるわけだが、該当するクラスのないURL短縮サービスに対してはエラーを返すので新しいサービスが出て来たら都度クラスを追加していかなくてはいけない。

しかし短縮URLサービスも多いね。

前の記事

Adobe Shadowが便利