amazonのProduct Advertising API(PA-API)って?
PA-APIを利用すると、アマゾンに出品されている商品の情報が取得できます。主にアフェリエイター向けのサービスで無料で使うことができます。 amazonのサイトにはこのように記載されています。Product Advertising API (PA-API) は商品情報や販売金額などを取得することができるAPIです。PA-APIはキーワードによる商品検索APIや、特定の商品の詳細情報を取得するAPIを提供しています。このAPIをシステムに組み込むことで、キーワードに連動した商品情報を自動で取得・表示するようなシステムを構築することができます。
APIを使用するための準備
Amazonアソシエイト・プログラムへ参加する
まずはAmazonアソシエイトへ登録します。
アクセスキーとシークレットキーを取得する
APIの使用に必要なアクセスキーとシークレットキーを取得します。 APIを利用するにはアソシエイトのナビゲーション「ツール」→「Amazon Product Advertising API」を選択します。
ページ内[認証キーの管理]でアクセスキーとシークレットキーを取得するのですが、シークレットキーが表示されたらどこかにメモを取りましょう。 そのまま画面を閉じると再確認できずにサイドアクセスキーの取得をすることになりますよ。
データの取得はScratchpadが便利です
一からコードを書いて情報を取得する、なんて高度な事できないのでAmazonが提供してくれている[Product Advertising API Scratchpad]を利用します。
アソシエイトのページのどこにリンクあるのかと探しましたが分かりませんでした。
下にスクラッチパッドへのリンクをはっておきます。
必要情報を入力する
何でもいいのでとりあえずデータを取得してみます。 Scratchpadサイドバーから[SearchItems]を選択し、赤枠部分に「アクセスキー」と「シークレットキー」を記入します。これがないとデータの取得ができません。
赤枠つけ忘れましたが、[Partner Tag]も必須です。
パートナータグはアソシエイトIDなのでアソシエイトのページ右上に表示されているアソシエイトIDを記入します。
Keywords
ここに検索キーワードを入れます。
Resources
どんな情報を取得するのか選択します。[Select all]で全部でもいいのですが、情報量が多いので[Images.Primary.Medium][ItemInfo.Title][Offers.Listings.Price]あたりを選択して見てみると分かりやすいです。商品のメイン画像、タイトル、価格ですね。
SearchIndex
これは商品カテゴリーです。選択しなくても大丈夫ですが、思っている商品が表示されないことがあるので選択してもいいかもしれません。
ちなみにカテゴリはこんな感じでした。
HealthPersonalCare | ドラッグストア |
HomeAndKitchen | ホーム&キッチン |
SportsAndOutdoors | スポーツ&アウトドア |
Industrial | 産業・研究開発用品 |
ToolsAndHomeImprovement | DIY・工具・ガーデン |
Apparel | 服&ファッション小物 |
Hobbies | ホビー |
Beauty | ビューティー |
Toys | おもちゃ |
Appliances | 大型家電 |
Electronics | 家電&カメラ |
Shoes | シューズ&バッグ |
Baby | ベビー&マタニティ |
GroceryAndGourmetFood | 食品・飲料・お酒 |
OfficeProducts | 文房具・オフィス用品 |
Automotive | 車&バイク |
Jewelry | ジュエリー |
MusicalInstruments | パソコン・周辺機器 |
VideoGames | TVゲーム |
Books | 本 |
PetSupplies | ペット用品 |
ForeignBooks | 洋書 |
KindleStore | Kindleストア |
AmazonVideo | Prime Video |
EverythingElse | その他すべて |
Music | ミュージック |
Add a new parameter
他にパラメーターを追加することもできます。
価格順や新着などで並び替えしたり、最低価格、最高価格を設定したりです。
全部使ってないので分かりませんが、色々使って確認してみて下さい。
例えば価格の安い順で並び替えをする場合、 スクロールして[SortBy]のラジオボタンにチェック、その後+ボタンを押すと上に項目が追加されるので、プルダウンより[Price:LowToHigh]を選択します。
データを取得
必要情報を入力したら[Run request]のボタンを押すとデータの取得ができます。
[JSON response]タブに切り替えるとどのような感じでデータが取得できているか分かりやすかったです。
その他の方法
スクラッチパッド以外にはこんな方法がありました
Code snippetsを利用する
SDK使用してみようとファイルをダウンロードしたもののうまくページに表示されなかったので、私はスクラッチパッドで表示されたPHPのコードスニペットを使用しました。
コードスニペットにはシークレットキーが非表示なのでコピペしてください。
コードスニペットには他にJAVA、PHP、cURLが用意されています。
#responseの中身を整えてページに表示できたら完成です。
ここまでするのに結構時間がかかりました。(SDK使用での表示もできてないし)
こういうデータのやり取りとか、やりたいと思っていることをもう少し実現できるようになれればいいなぁと思っています。