Googleの短縮URLサービスをrubyでたたいてみます。
URL Shortener API — Google Developers
1,000,000 requests/day らしいですが、ちょろっとした用途には十分です。
APIを使用する
https://code.google.com/apis/console/
ここでcheckをonにするだけ。
httpartyで書いてみる
当初net/httpで書いてみましたが、あまりきれいでないのと
ssl、post、jsonを使うかつset_form_data だとエラーになるため
httpartyで書いてみました。
とてもsimple。
require 'httparty' require 'json' res = HTTParty.post('https://www.googleapis.com/urlshortener/v1/url', :body => { :longUrl => 'http://rochefort.hatenablog.com' }.to_json, :headers => { 'Content-Type' => 'application/json' } )
# 結果 >> p res.class HTTParty::Response => HTTParty::Response >> p res.code 200 >> puts res.body { "kind": "urlshortener#url", "id": "http://goo.gl/CfPqZs", "longUrl": "http://rochefort.hatenablog.com/" } >> pp res {"kind"=>"urlshortener#url", "id"=>"http://goo.gl/CfPqZs", "longUrl"=>"http://rochefort.hatenablog.com/"} => #<HTTParty::Response:0x7fd73924c918 parsed_response={"kind"="urlshortener#url", "id"="http://goo.gl/CfPqZs", "longUrl"="http://rochefort.hatenablog.com/"}, @response=#<Net::HTTPOK 200 OK readbody=true>, headers{"cache-control"=>["no-cache, no-store, max-age=0, must-revalidate"], "pragma"=>["no-cache"], "expires"=>["Fri, 01 Jan 1990 00:00:00 GMT"], "date"=>["Mon, 19 Aug 2013 13:47:55 GMT"], "etag"=>[""7QRh0l_StuZTJyavuy4-STROp7U/7KIWtJ5Nedidp8ueujFfzGPqUXw""], "content-type"=>["application/json; charset=UTF-8"], "x-content-type-options"=>["nosniff"], "x-frame-options"=>["SAMEORIGIN"], "x-xss-protection"=>["1; mode=block"], "server"=>["GSE"], "connection"=>["close"]}