Amazonのほしい物リストのフィード

Amazonほしい物リストAmazonの商品で欲しいと思ったものをリストアップしておいて、自分用のメモにしたり、それを見た知り合いが誕生日などにそこに書いてあるものをプレゼントしてくれたりするやつ。

自分も最近使い出した。

フィードないの?

で、こういうのがあるなら、当然フィードが欲しいところ。ただ残念ながら、普通では配信されてないらしい。

そこでAWS、つまりAmazon ECSだ。ここにほしい物リストを取得するためのREST APIがあった。ただ、もちろんこのAPIで得られる結果はxmlなどであってフィードの形式ではないし、AWSの登録キーなどが無いと呼び出せないので、単純にフィードを読みたいだけの人が使うには面倒すぎる。

Yahoo! Pipesで作った

ってことで、Yahoo! Pipesでフィードを作ってみた。

ここの「Wishlist URL」っていうところに、ほしい物リストのURLをコピペすると、ほしい物リストのフィードを生成する。あとはそれを好きなRSSリーダーで購読すればいい。

仕組み

3つのYahoo! Pipesを作った。

  1. http://pipes.yahoo.com/nacookan/awsproxy_wishlist
  2. http://pipes.yahoo.com/nacookan/wishlist_feed_page
  3. http://pipes.yahoo.com/nacookan/wishlist_feed

最初のやつは、まずAmazon ECSのREST APIを簡単に呼び出せるようにしたYahoo! Pipes。重要なパラメータ以外は中に閉じ込めたので、ほしい物リストを取得するようなプログラムを気軽に作るためのAPIとして使えると思う。XMLJSONJSONPでも取得できるので、使い道は今回以外にもありそうな感じ。

2番目のやつは、上のYahoo! Pipesを呼び出して、結果をフィードの形式に変換するようなYahoo! Pipes。ページ番号ももらうようになっていて、任意のページ(1ページあたり10件)のフィードを取得できる。

で、3番目のやつが最終的なYahoo! Pipes。1〜5までのページのフィードを取得して合体してソートして返すようになってる。

つまり、API呼び出しと、フィードへの変換と、5ページ分のループ処理をそれぞれ別なYahoo! Pipesにしたわけだ。Loopモジュールの中にはモジュールをひとつしか配置できないので、こういう風にして入れ子にする必要があった。

終わり

ぜひともこれで、友人のほしい物リストのフィードを購読して、その友人の誕生日に何か欲しいものを贈ってあげてね。