GoogleショッピングAPIを使用して価格追跡を行うスクリプトを書いています. この URL に curl または Web ブラウザーでアクセスすると、データが読み込まれます。
ただし、この ruby スクリプトを使用すると
require "rubygems"
require "net/https"
@url = 'https://www.googleapis.com/shopping/search/v1/public/products?key=AIzaSyCGGKfldgrPQsXAJw5Dbn1M3QWZ9vqVyBQ&country=US&q=digital+camera'
uri = URI.parse @url
http = Net::HTTP.new(uri.host, 443)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
http.ca_file = File.join(File.dirname(__FILE__), "./cacert.pem")
http.start { http.request_get(uri.path) {|res| print res.body } }
次のエラーが表示されます。
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "dailyLimitExceededUnreg",
"message": "Daily Limit Exceeded. Please sign up",
"extendedHelp": "https://code.google.com/apis/console"
}
],
"code": 403,
"message": "Daily Limit Exceeded. Please sign up"
}
}
私の理論では、Ruby コードが https を不適切に使用しているためにエラーが発生しているということです。cacert.pem は curl.haxx.se/ca/cacert.pem からのものです https 経由で API にアクセスするにはどうすればよいですか?