Amazon Product Advertising API を利用して世界各国の商品価格差リサーチツールを作ってみる

image

アマゾンのAPIを使って何か作ろうかなと思い立ったのでメモ書き

使用するAPIは”Product Advertising API”です。
これを使うと、製品広告APIという名の通り、アマゾンに出品されている製品に関する広告を自由に作成する事ができます。また、出品商品の詳細データも自由に取得出来ますので、使い方次第で色々な事ができます。

何を作るかですが、今回はASIN(「Amazon Standard Identification Number」の略で、Amazonグループが取り扱う、書籍以外の商品を識別する10けたの番号です。CD、DVD、ビデオ、ソフトウェア、ゲームなど、書籍以外の商品の詳細ページに記載されています。)というコードを利用し、1つの製品について世界各国(日本、アメリカ、イギリス、ドイツ、フランス、カナダ)にあるアマゾンに出品されている価格を取得し、日本円にリアルタイム為替レートによって変換を行い、価格差を表示するというツールを作ろうと思います。
リアルタイム為替レートに関しては、また別の取得方法をしますので割愛します。
ASINは世界共通(でない物もありますが)ですので、目的の商品のASINがあれば、世界のアマゾンの商品データを取得できます。

それではまずAPIを使う為の準備として、以下2つのアカウント作成を行います。
・Amazonアソシエイトのアカウントを作成する
・Product Advertising APIのアカウントを作成する

次に、APIを使用するにあたって必要なコードをメモしておきます。
・アソシエイトID(アソシエイトにログインした画面の左上に表示されている******-22という文字列です)
・AWSアクセスキーID(Product Advertising APIアカウントに生成されます)
・AWSシークレットアクセスキー(Product Advertising APIアカウントに生成されます)

以上でAPIを使う為の準備ができましたので、実際に使ってみます。
今回はJavaで使いますので、以下サンプルコードをダウンロードします。

サンプルコード集(英語)

このリストの中から以下をダウンロードします。

Product Advertising API Signed Requests Sample Code – Java REST/QUERY

このソースをeclipseなどの開発環境に取り込みます。
取り込んだままの状態では、ライブラリが不足しておりコンパイルエラーの状態となっていますので、不足分を取得します。

Apache Commons Codec

007

ここから最新版のライブラリをダウンロードしてeclipseプロジェクトのビルドパスに追加します。
commons-codec-1.9.jar
commons-codec-1.9-javadoc.jar
commons-codec-1.9-sources.jar

上記ライブラリを追加すると以下のようなプロジェクトイメージとなります。

008

次にソースの修正を行います。

AWS_ACCESS_KEY_IDに上で取得したAWSアクセスキーIDを設定し、
AWS_SECRET_KEYに同じくAWSシークレットアクセスキーを設定します。

これで準備OKということでプログラムを実行すると、
” リクエストには、必要なパラメータが含まれていません。必要なパラメータには、AssociateTagなどがあります。”
というエラーが返ってきます。

このサンプルプログラムが作られた当時は、このAPIにはAssociateTagというパラメータは必須ではありませんでしたが、現時点では仕様が変わり、必須となっている為にこのようなエラーが返ってきています。
ということですのでパラメータを追加します。

paramsというMapにパラメータをputしている辺りに以下1行を追加します。

params.put("AssociateTag", "sample");

値は上で取得したアソシエイトIDを指定すべきですが、実はこのパラメータ自体が存在さえしていれば正常に動きますので、このままでもOKです。

以上でとりあえず動くプログラムとなりました。
開発者ガイドを元に色々と動かしてみてイメージを掴んだ所で、冒頭で記述したツールを作成します。

開発者ガイド

実際に作ったものが以下になります。

Amazon価格差リサーチツール

009

使い方は、まずテキストボックスにASINを入力します。

010

リサーチ実行ボタンが表示されますのでクリックします。

011

Ajaxでリクエストが送信され商品詳細情報と世界各国のアマゾンの価格を取得し、日本円に変換して結果を表示します。
これで取得したデータをDBに格納していき価格の推移を見たりだとかしても面白いのではないでしょうか。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>