1日目は @hanachin さんの「Rubyで国民健康保険料を計算する」でした。
Amazon は Product Advertising API というものを提供していて、商品を検索したりできます。
利用するためには affiliate.amazon.co.jp への登録が必要です。
加えて、 Advertising API を使うサイトなども申請する必要があります。
ちなみに登録に関してはにはこちらの記事が有用です。
Product Advertising API の token を取得したので、いざ商品検索。
具体的にはこちらを参考にしつつ書き始めましたが、この記事では商品検索リクエスト(item_search)を使っています。
私は検索ではなく「特定の値段以下のKindle本」が欲しいので、send_request で直接リクエストを作ることにしました。
とは言え実行するアクションは「ItemSearch」なので検索に相当します。
なお、 Advertising API は「特定のノード以下の情報を検索」ができます。
browse_node: 2293143051 というマジックナンバーがそれです。
2293143051 は Kindle book store のノードのようです。
Amazon本家のサイトの「Kindle ストア」にカーソルを合わせたりすると URL に含まれていて、他にも大量にあります。
さて、リクエストの目星が付いたので実行してみましょう。
あれ。取れていませんね。何故だろう。
デバッグのために request を inspect したりして request の URI を取得。
その上参考記事の URI と比較すると、どうやら amazon.com に request を送っているようです。
(ここはエラーの詳細を書きたかったのですが、BANされたので割愛)
ということで marketplace: 'ja' を追加すると amazon.co.jp にリクエストを送るようになりました。
これで無料の Kindle 本を取得できました。
まとめ
amazon-ecs を使って無料の Kindle 本を集めることができました。
私はやってないのですが、これを購入する部分まで書くと素敵なことになりそうですね。
ということで Okinawa.rb Advent Calendar 2日目の記事でした。
環境
- OS: Ubuntu 16.04.3 LTS
- ruby: 2.4.2p198 (2017-09-14 revision 59899) [x86_64-darwin16]
- rubygems: 2.6.13
- amazon-ecs: 2.5.0
参考
0 件のコメント:
コメントを投稿