Amazon APIのリクエストURLを組み立てる方法
Amazonの商品データを取得する方法をメモ。
今回は、AmazonのProduct Advertising APIでデータを取得するために、リクエストURLを組み立てる方法です。
APIのアクセスキーと秘密キーを取得
まず最初にAmazonに登録して、API利用に必要な「アクセスキー」と「秘密キー」を用意します。
(参考)AWSアクセスキー識別子
https://affiliate.amazon.co.jp/help/topic/t126/a4/ref=amb_link_hUkkizpuNYCtYB28C08Nlg_8
Product Advertising APIのアカウントを作成すると、AWSでは以下のようなアカウント識別子情報を設定します。
アクセスキーID(半角英数字で構成された20文字の文字列)
例:022QF06E7MXBSH9DHM02秘密キー(40文字のシーケンス)
例:kWcrlUX5JEDGM/LtmEENI/aVmYvHNif5zB+d9+ctこれらが、お客様のAWSアクセスキー識別子となります。
リクエストの署名
Amazon APIの利用方法は、検索するといろいろ説明が出てきます。
(参考)サンプルリクエストに署名を行うためのステップ
https://affiliate.amazon.co.jp/help/topic/t126/a13/ref=amb_link_3LE3oueLNruPiAGKrfDxRQ_2
Amazon APIのリクエストURLを作るメソッド
ここでは、CodeIgniter(PHPのMVCフレームワーク)で、Amazon APIを利用するライブラリークラスを作成してみます。
- AmazonクラスのencodeURLメソッドを使います。
- 引数$paramsで必要な情報を渡します。
- APIにアクセスするためのURLが返ってくるので、そのURLでAmazonにデータ取得のリクエストを行います。
- リクエストの結果=レスポンスデータは、AmazonからXMLデータの形で渡されます。
- XMLデータをパースして、利用したい情報を取り出します。
リクエストURL作成メソッドの利用例
ASIN(Amazonの商品コード)で商品データを取得する場合の使用例です。
CodeIgniterのモデルでAmazonクラスのencodeURLメソッドを呼び出しています。
(説明の簡便化のため、前後の記述は省略)
- Operation、ItemId、ResponseGroup等のデータを指定して、配列$paramsに入れます。
- $paramsを引数として、encodeURLメソッドに渡せば、ASINで検索するためのリクエストURLが作成されます。
- PHPのfile_get_contents関数でURLにアクセスすると、XMLのレスポンスデータがAmazonのProduct Advertising APIから返されます。
様々なタイプのリクエスト
APIの利用方法に応じて、引数$paramsに入れる付加情報を変えればOKです。
上記の例では、「ItemLookup」という操作を行なっています。
他にも、いろいろな操作ができます。
(参考)その他の署名認証リクエストの例
https://affiliate.amazon.co.jp/help/topic/t126/a14/ref=amb_link_YH9CZRtyNvui235NwsYxuA_3
リクエストサンプルリスト
・ItemSearch
・CartCreate
・ListSearch
・ListLookup
・BrowseNodeLookup
・SimilarityLookup
それぞれのリクエストで、どのような引数を渡せば良いのでしょうか?
使い方を確認するために、「Product Advertising API Scratchpad」というツールが用意されていました。
よく使うのは、
- ASINやISBNを指定した商品検索
- 商品カテゴリーの検索
- カテゴリー毎の商品検索
などでしょうか?
リクエストの回数制限
APIのリクエストは、Amazonのサーバーに負荷をかけないため、基本的に1秒あたり1回までとなってます。
API経由によるAmazon商品の売上金額に応じて、APIの利用回数が増加/減少される仕組みになってます。(1秒あたり1回~10回に増減される)
(参考)Product Advertising API (PA-API) の利用ガイドライン
https://affiliate.amazon.co.jp/help/topic/t32/ref=amb_link_zYXX0aRKMACI_Qkj9rR6Nw_1
リクエスト数の上限は、以下の計算式によって定められ、最大1秒間あたり10リクエストまで認められます。この売上実績は、PA-APIで取得したURL経由のものでなくてはなりません。
◆[リクエスト数の上限] = 1 + [ (過去30日間の配送済み商品売上実績/460,000円)の小数点以下を四捨五入した数 ]
これで、Amazon APIを使う準備ができました。