Rubyで短縮URLを展開

2012-03-26
かなり古い記事です。現在も有効な内容であるかどうか分かりませんのでご注意ください。

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サービスも多いね。

Profile

フルスタック気味のフリーランスプログラマー。

どちらかと言うと得意はインフラ構築とサーバーサイドプログラミングですが、フロントエンドもぼちぼちやっています。

最近の興味範囲はWordPress、AWS、サーバーレス、UIデザイン。

愛車はセロー。カメラはペンタックス。旅好きです。横浜在住。