一応、無料の商用利用可と言う事となっている。
言語は、Rails 等で使えるかどうか分からないけど、Ruby で使えたら良いなと思っている。
毎度の事ながら既に、実現している方が居られた。
[Ruby]Ruby 1.9で楽天ブックス書籍検索API2を使ってみる
http://d.hatena.ne.jp/d-kami/20130409/1365483598
こちらでは、名前が「楽天ブックス書籍検索API2」になっているが、現行は「楽天ブックス書籍検索API」に変わった模様。
「楽天ブックス書籍検索API」
https://webservice.rakuten.co.jp/api/booksbooksearch/
といっても、処理については同じで良い事がわかった。
準備
さて、まずこのサービスを使うには、「楽天ウェブサービス」に登録し、「楽天ブックス書籍検索API」と使うためのアプリ申請をする必要がある。
これは、特に注意点はなく、登録すればよい(コールバックドメインについては example.com にした)。
この登録によって、今回のプログラムで使用するアプリIDを取得する。
1. コードを書く
もう終盤に当たるが、参考にさせて頂いたサイトのコードを写す。
ポイントとしては、ここでは、https の通信を行うので 「net/https」を使っている。
また、参考先では、CA証明書ファイルについて指定があるが、
この部分「nil」に設定して、
「https.verify_mode = OpenSSL::SSL::VERIFY_NONE」をしてしても問題なく動いたので今回はこちらの方法を使った。
require 'json'
require 'net/https'
app_id = 'ここにアプリIDをセット'
searchTitle = 'Java'
https = Net::HTTP.new('app.rakuten.co.jp', 443)
https.use_ssl = true
https.ca_file = 'nil'
https.verify_mode = OpenSSL::SSL::VERIFY_NONE
https.verify_depth = 5
https.start {
response = https.get("/services/api/BooksBook/Search/20130522?format=json&applicationId=#{app_id}&title=#{searchTitle}")
document = JSON.parse(response.body);
document['Items'].each{|item|
puts item['Item']['title']
}
}
2. コードの実行これで、完了。
あとは、実行するだけ
$ ruby BookSearch.rb
Javaで始めるOpenCVプログラミング
...
速習JavaScript
と、まあ簡単に書籍のデータが取得できるようになった。実際には、一つ前の記事のプロキシ設定で、悩み数時間かかったりだとか、Windows の環境では証明書関係のエラーが出て躓いた(OpenSSL::SSL::VERIFY_NONE で切り抜けた)ので、サクサク行けたわけではない。
今回は、タイトルだけだが当然他の値も取得できているので、今後に活かさせば良いかなと思う。
0 件のコメント:
コメントを投稿