Mae向きなブログ

Mae向きな日記のブログ版。ようやくこちらに移行してきました。

bit.lyについて

昨日は,TinyURLについて書いたのですが,似たようなサービスにbit.lyがあるようです。今日は,これについて調べてみました。
http://code.google.com/p/bitly-api/wiki/ApiDocumentation を参考に,昨日同様試してみました。

bitly.rb

#!/usr/bin/env ruby
require 'net/http'
require 'uri'
require 'rexml/document'

query_hash = {
  "version" => "2.0.1",
  "longUrl" => "http://d.hatena.ne.jp/rahaema",
  "login" => "bitlyapidemo",
  "apiKey" => "R_0da49e0a9118ff35f52f629d2d71bf07",
  "format" => "xml"
}
query_string = query_hash.map{ |key, value|
  "#{URI.encode(key)}=#{URI.encode(value)}"
}.join("&")

xmldoc = nil
Net::HTTP.version_1_2
Net::HTTP.start("api.bit.ly", 80) {|http|
  response = http.get("/shorten?" + query_string)
  xmldoc = REXML::Document.new(response.body)
}

puts xmldoc.elements['/bitly/results/nodeKeyVal/shortUrl'].text

実行

http://d.hatena.ne.jp/rahaema は以下のように短くなります。比較のためにTinyURLでの実行結果も載せておきます。

$ ruby bibly.rb
http://bit.ly/dnP3HF
$ ruby tiny.rb
http://tinyurl.com/y8sp36a