Amazonの商品を手軽に扱えるプラグイン、AmazonResourcesをつくりました
Amazon商品を手軽に扱えるRailsのプラグイン、AmazonResourcesを作ってみました。
product = Amazon.find_by_asin(4274066967)
こんな感じに使います。テーブルに対象の商品がないときはAmazonのWebAPIで情報を取得して、自動でテーブルに保存してからインスタンスを返してくれます。また、テーブルに保存してから一週間以上経過すると、Amazonに問い合わせて最新情報を取得します。
これを使えばWebAPIのことを意識することなくAmazonの商品を手軽に扱えるようになります。もともとkaeruspoonで使っていたものをプラグインにしたものだったりします。
ISBN13にも対応しています。
product = Amazon.find_by_isbn13("978-4274066962")
AmazonResourcesはgithubで公開しているので、誰でもインストールして使えます。
1.Hpricotのインストール
AmazonResourcesはHpricotを使用しているので、gemに入っていないときはインストールしておきます。
sudo gem install hpricot
2.AmazonResourcesのインストール
./script/plugin install git://github.com/tsukasaoishi/amazonresources.git
3.Amazon商品を管理するモデルを作成する
./script/generate amazon_resources (モデル名) (AmazonWebサービスのアクセスキーID) (アソシエーションタグ)
こんな感じで作成することができます。
例えば、
./script/generate amazon_resources amazon XXXXYYYZZZ AAAAA-22
とすれば、amazonsテーブルのためのmigrationファイルとamazonモデルが作成されます。
4.Amazon商品を保存するテーブルを作成する
rake db:migrate
これでOKです。
ちなみに取得できる情報は、ぼくが個人的に必要だと思う最低限の項目だけにしていますので、他の項目も取得したい方はモデルを改良して自由につかってください。