ruby-amazon を使って AWS の wishlist を公開してみる。どこかで実装を見掛けた気もするけど、過去に
まんがめもランキング で使っているし、amazon/search でレスポンスを得るだけなら簡単なので 30分くらいで車輪を再発明。response を得てしまえば response.products からプロダクト情報を引っ張り出すだけ。
require 'amazon/search'
page_max = 1
request = Amazon::Search::Request.new(DEV_TOKEN, ASSOCIATES_ID, LOCALE)
request.cache = Amazon::Search::Cache.new('/tmp/amazon')
products = Array.new
(1..page_max).each do |page|
begin
products += request.wishlist_search(WISHLIST_TOKEN, HEAVY, page)
rescue Amazon::Search::Request::SearchError
end
end
各定数は適当に自分のものを入れる。wishlist は 1 page に 10 アイテムという構成らしく、全アイテムを取るには page_max を 100 等にすれば良さそう(wishlist の最大値は知らないが)。AWS のドキュメントによれば page=0 で全て取得、と成りそうなところだが、どうもうまく取得できなかった。2 ページ以上取得すると当然 2 回以上 AWS への REST Request が発生して遅くなるのでとりあえず 1 page (10 item) にしておく。
2
Blog に Wishlist を掲載
この Blog に wishlist を載せるようにした。最新アイテム 10 個のうち、ランダムに 3 つが掲載される。一応宣伝と言う意味もあるんだけど、私の Amazon Wishlist は面白そうだと思った書籍等を入れて置く場所として使っているので、用途的には
del.icio.us や
はてなブックマーク に近い扱い。なので del.icio.us のエントリを公開しているのと同じ感覚で公開と言うポリシーのつもり。プログラムは
amazonwishlist.rb に置いときます。
とりあえず普通の Amazon Webページの wishlist から html を持ってきて、出来るだけ cache しつつ当面逃げておこうかなと思っているところです。