【Node.js】Amazon ProductSearch(ItemSearch)APIで商品検索をやってみる

投稿者: | 2019年1月5日

Amazonが提供するAPI(Amazon Product Search)を使ってみました。数あるAPIの中でもItemSearchというAmazonに出品されている商品の検索APIです。今回はNode.jsを使ってます。かなり簡単に実装できました。npmにモジュール提供いただいた先人に感謝です。

① Amazonアフィリエイトプログラムに登録しキー情報を取得する。

https://affiliate.amazon.co.jp/

わたしは10年前くらいからアカウントを持っていたので、最新のアカウントの登録方法は不明です…おそらく上記のURLあたりから登録することができるかと思われます。

APIをコールする上で必要になるキーは以下になります。

  • AWS_ACCESS_KEY_ID (アクセスキー)
  • AWS_SECRET_KEY (シークレットキー) 払い出したページから移動すると分かんなくなるので注意。(わからなくなった場合、再度払い出し)
  • ASSOCIATE_TAG (アソシエイトID) AmazonアソシエイトのIDです。たぶんダッシュボードの右上に出てるかと。

② npmで必要なパッケージをインストールする

amazon-product-api」を利用しました。

以下のコマンドでインストールします。

npm install --save amazon-product-api

③ API呼び出し処理の作成

// モジュールの読み込み
var amazon = require('amazon-product-api')
// 初期化
var amazonClient = amazon.createClient({
awsId: 'APIアクセスキー',
awsSecret: 'シークレットキー',
awsTag: 'アソシエイトID'
})
// itemSearchのAPIリクエスト
amazonClient.itemSearch({
searchIndex: 'Grocery',
Keywords: '検索キーワード',
responseGroup: 'OfferFull,Large,Images',
domain: 'webservices.amazon.co.jp'
 }).then( (result) => {
  console.log(result
}).catch( (error) => {
console.log(error)
})
})

こんな感じでamazon-product-apiを読み込んでitemSearchのAPIコールようのメソッドをたたけばOKです。

ポイントとしては、itemSearchの呼び出しパラメータとして、以下を追加する必要があります。(ないとエラーになりました。)

domain: 'webservices.amazon.co.jp'

この指定がない場合、APIのエンドポイントがモジュールのデフォ値になり、わたしのキーだと「このIDは使えません」的なエラーが帰ってきます。「co.jp」を指定してあげることで正常に動作しますので、こちらを利用ください。

同じく、パラメータの「searchIndex」ですが、こちらはAmazonの商品DBの大カテゴリみたいな概念かと思います。以下を参照し、必要なカテゴリを指定ください。

https://docs.aws.amazon.com/AWSECommerceService/latest/DG/LocaleJP.html

 


カツオが開発したWebサービスです。

平成の想い出を気軽に年表にしてシェアすることができるサービスです。ぜひ使ってみてください。

【Node.js】Amazon ProductSearch(ItemSearch)APIで商品検索をやってみる」への2件のフィードバック

    1. katsuo 投稿作成者

      ご回答が遅くなってしまい申し訳ございません。
      古いソースなので、Viewのソースが見当たらず…申し訳ございません。

      返信

コメントを残す

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