Google Web API

GoogleWeb APIが新規にキーを発行してくれない*1。以前発行してたので助かった。
GoogleSearch.wsdlもなくなっている。以前なら

http://api.google.com/GoogleSearch.wsdl

でアクセスできるのに、今はnot found。これも前持ってたやつがあったので助かった。


まずruby-googleと依存ライブラリであるsoap4rをインスコ
http://raa.ruby-lang.org/project/ruby-google
http://raa.ruby-lang.org/list.rhtml?name=SOAP4R

と、そのまえに、ruby-googleがこのままじゃ使えないのでインストールする前にちょっと書き換えないといけない。


ruby-google-0.6.0/lib/google.rb:158 に

WSDL    = 'http://api.google.com/GoogleSearch.wsdl'

とあるが、ここにはファイルがないので、適当な場所に指定しておく。ローカルに置けるが、ファイル読み込み作るのが面倒だったので、#{RAILS_APP}/public/ にほりこんどいて、urlで指定しといた。


次、通信部分を作る。
今回は、ある url のバックリンクの数が欲しかっただけなので、すごい簡単。KEY はアプリケーションキー

def get_back_link(url)
  google = Google::Search.new(KEY)
  q = google.search("link:#{url}", 0, 1)
  return q.estimatedTotalResultsCount
end

できた。


問題点としては、レスポンスがくそ遅く、たまに502エラーが出ること。うーむ。

*1:soap版限定。ajax版は発行できる