AmazonのPA-API+Node.js入門【初心者向け】

「Node.jsでAmazonの商品の情報を取得してみたいなー」と思って調べた内容メモ。

初心者向けです。

Amazonの商品 → PA-APIで取得できる

Amazonが提供している「Product Advertising API」(略称:PA-API)というAPIを使えば、商品の情報をプログラム経由で取得できるらしい。

ちなみに「PA-API」にはバージョンがあって、2020年5月11日現在バージョンはv5

おそらく今後もバージョンアップされていくと思われ、バージョンアップされると前バージョンのPA-APIは使えなくなる可能性があるっぽいです。

現に、以下のようなアナウンスがされています。

2020年3月 31日をもって、PA API 4は完全にサービスを停止します。
サービス停止後は、PA-API 4に対してシステムコールを行ってもAmazonの製品情報を取得することができません。

PA-API → 事前に登録が必要

PA-APIを使うには事前に登録が必要です。

まず、以下のページから「Amazonアソシエイト」のアカウントを作ります。

公式アソシエイト・セントラル – Product Advertising API

 

「Amazonアソシエイト」のアカウントはAmazonアカウントとは別物なので、Amazonアカウントを持っていたとして別途作成する必要があります。(しかしAmazonアカウントと連携することも可能っぽい・・?)

アカウントを作ったら、「認証キー」を作成します。

▲「認証情報を追加する」から作成できます。キーは最大2個までらしい。(ちなみに画像に写っているアクセスIDキーはChromeで書き換えた偽物です)

 

「認証キー」を作成すると

  • アクセスキー(AKIAJOSAFMSFHXB4ENXみたいな文字の羅列)
  • シークレットキー(bs5tb4r5GH8b4s6tr4vb6XF489sthn4rLAthbQVwみたいな文字の羅列)

の2つが入手できるのでコレをメモしておきます。

アクセスキーのほうは管理画面からいつでも確認することができますが、シークレットキーの方はキーを作成したときにしか表示されないので、必ずメモしておきましょう。

SDKを使えば → PA-APIを簡単に使える

PA-APIを使うには、それなりに面倒なコードをガリガリ書かないといけないらしいんですが

  • PHP
  • JAVA
  • Node.js
  • Python

という4つのプログラミング言語に限っては、Amazon様がじきじきに公式のSDK(簡単に使えるようにするためのライブラリみたいなもの)を用意してくださっています。

▲簡単な使い方まで書いてくれてます。英語ですが。(ありがてええええええええええ!!)

なのでこれらの言語にかぎっては、SDKを使えば数行で商品情報を取得できたりします。

Node.js用SDKのインストール方法

公式ページから、Node.js用のSDK(paapi5-nodejs-sdkという名前です)をzipでダウンロードできますが

公式からダウンロードしなくても、CUI上で

npm -i paapi5-nodejs-sdk

という風にタイプすれば、npmから「paapi5-nodejs-sdk」をインストールできます。(Amazon公式でダウンロードできるzipと内容は同じみたいです。)

というわけで上のコマンドを打つだけでインストール完了です!Amazon様ありがとうございます!

Node.js用SDKの使い方

使い方は、SDKの中に入っている

  • sampleGetBrowseNodesApi.js
  • sampleGetItemsApi.js
  • sampleGetVariationsApi.js
  • sampleSearchItemsApi.js

という4つのサンプルコードを見たほうが早いです。

(npm経由でインストールした場合でも、node_modulespaapi5-nodejs-sdkフォルダの中に入ってます)

 

PA-APIには

  • GetBrowseNode関数:
    →指定したノードID(ノード=Amazonのカテゴリ番号みたいなもの)の親ノード(Ancestor)や子ノード(Children)を取得できる関数。
    (例えば「71649051」は「ワイン」のノードなわけですが、「71649051」を指定すると、

    • 親ノード=酒
    • 子ノード=赤ワイン、白ワイン、ロゼワイン、シャンパン・・・
      みたいな感じで取得できたりする)
  • GetItem関数:
    →指定したASINの商品情報を取得する関数。
    (例えば「B017SIIRKQ」みたいに指定すれば、「B017SIIRKQ」の価格を持ってこれたりする)
  • GetVariations関数:
    →指定したASINのバリエーション情報を取得する関数。
    (例えば「B017SIIRKQ」が服だとして、「B017SIIRKQ」を指定すると「L」「M」などのサイズ違いの商品や、「黒」「白」「青」みたいな色違いの商品を取得できる…みたいな感じっぽい)
  • SearchItems関数:
    →指定したノードIDからキーワードを含む商品を取得できる関数。
    (これはわかりますよね・・)

という4つの関数が用意されていて、基本的に商品情報を取得するにはこの4つの関数を使うらしいのですが(というかこの4つの関数しか使わないっぽいのですが)、

この4つの関数のサンプルコードが↑の4つファイルというわけです。

なので、この4つのサンプルコードさえ見れば、使い方をほぼマスターできたようなものなのです!おそらく!

書き換えが必要

サンプルコードを使うには、デフォルトの状態から一部書き換えないと動作しません。

まず、以下の部分を

defaultClient.accessKey = '<YOUR ACCESS KEY>';
defaultClient.secretKey = '<YOUR SECRET KEY>';

先ほど取得した

  • アクセスキー(AKIAJOSAFMSFHXB4ENXみたいな文字の羅列)
  • シークレットキー(bs5tb4r5GH8b4s6tr4vb6XF489sthn4rLAthbQVwみたいな文字の羅列)

にそれぞれ書き換えます。

 

次に以下の部分を

defaultClient.host = 'webservices.amazon.com';
defaultClient.region = 'us-east-1';

以下のように書き換えます。

defaultClient.host = 'webservices.amazon.co.jp';
defaultClient.region = 'us-west-2';

 

最後に以下の部分を、自分のアフィリエイトタグに書き換えます。(「○○○-22」みたいなタグです)

searchItemsRequest['PartnerTag'] = '<YOUR PARTNER TAG>';

 

これで準備完了です。

例:sampleGetItemsApi.jsを使いたい場合

例えばsampleGetItemsApi.jsを使いたい場合は

getItemsRequest['ItemIds'] =['B07TRZ4V1C','B017SIIRKQ'];

に取得したいASINを配列形式で入れて、

node sampleGetItemsApi.js

という風に叩けば、json形式の結果が返ってきます↓。

 

おわり

 

関連AmazonのPA-APIを試すには Scratchpadサイトがオススメ!

Node.jsPA-API
スポンサーリンク
この記事を書いた人
penpen

1991生まれ。
2019年くらいからフロントエンドエンジニアを目指している元アフィリエイターです💩

penpenをフォローする
penpenをフォローする
penpenメモ

コメント

タイトルとURLをコピーしました