さてさて。前回続きを。
音楽APIのGracenote APIを叩いてperfumeを検索してみた
前回はcurlを使ってさくっとapiを叩いてみるところまでやりましたが、今回はrubyで、gemを使ってapiを叩いてみます。
環境
Mac OSX Lion
Ruby 1.9.3
gemって便利だよね
非公式だけどラッパーgemがあるので、さくっと gem install して使っちゃいます。
このgemはクエリXMLのLANGを設定出来ないので日本語の情報を引っ張るときに正常に稼働するかが懸念点ですが、今回はちゃんととれてるっぽい。
https://github.com/nobelium/gracenote
Gemfile
1 2 |
gem 'gracenote' gem 'rack' |
main.rb
1 2 3 4 5 6 7 8 9 10 |
# -*- mode:ruby; coding:utf-8 -*- require "gracenote" # 前回取得したClientId, ClientTag, UserIdを使用する spec = {:clientID => "xxxxxxxx", :clientTag => "xxxxxxxxxxxxxxxxxx", :userID => "xxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxx"} obj = Gracenote.new(spec) result = obj.findTrack("Perfume", "GAME", "チョコレイト・ディスコ", '0').inspect puts result |
1 |
$ bundle exec ruby main.rb |
こんな感じのレスポンスが返ってくれば成功。クエリXMLを直接書かなくて良いので楽ちんですね!
1 |
[{:album_gnid=>153857537, :album_artist_name=>"Perfume", :album_title=>"GAME", :album_year=>"2008", :genre=>[{:id=>0, :text=>"Electronica"}, {:id=>0, :text=>"Dance & Club"}, {:id=>0, :text=>"Club Dance"}], :album_art_url=>["http://web.content.cddbp.net/cds/2.0?id=8D1DE5C1792B0154&client=13046784&class=c ... |
ちょっと見当違いの箇所ではまってgemのカスタマイズとかやっていたので(結局必要なかった)、簡単にAPI叩くまでしか出来なかった。残念。。。
The following two tabs change content below.

原田 敦
日本CAWのエンジニア。もふもふ部の部長。得意分野はRuby on Railsを使った小規模WEBアプリケーションを高速で開発すること。週末の楽しみは一人お菓子パーティー。三度の飯より小動物をもふもふするのが好きです。

最新記事 by 原田 敦 (全て見る)
- Rails Engineでブログ機能追加するgemを作る - 2015年3月15日
- WEBエンジニア一人だけでサービスを作りきる方法-夫婦のための自動ごはん予定お知らせサービス「GoHaaan」制作でやったこと - 2015年3月7日
- CentOS6でMariaDBのDynamic Columnsを試してみた - 2015年2月28日