今回はAmzonAPIのProduct Advertising API5.0の使い方について。
pythonでPA-API5を使っていきますよ
PA-API認証キーの取得
PA-APIを使用するにはAmazonアソシエイトの登録が必須です。
かつ30日以内に何かしらのアフィリエイト実績がないとAPIの使用ができません。
(APIを使用し続けるなら継続的にアフィリエイト実績を作っていかなくてはいけません..)
なかなか条件が厳しいな〜...。
上記の条件をクリアしている方は問題なくAPIの利用が可能です。
API利用のためにアクセセスキーとシークレットキーをAmazonアソシエイトページから取得してきます。
アクセスキーとシークレットキーの取得
Amazonアソシエイトの画面から ツール>Product Advertising API を選択します
Product Advertising API 画面から認証キーの管理へ
認証情報を追加するを選択し、認証キーを取得します。
認証キーは最大2個まで取得することができます。(僕は2つ取得していましたので認証情報を追加するボタンが選択できないようになっています。)
アクセスキーとシークレットキーの表示は1度きりしか行われないのでしっかり控えておきましょう。
もし忘れてしまった場合は、認証キーを削除し、再度取得することができます。
アソシエイトタグの取得
アソシエイトタグはAmazonアソシエイトログイン画面の右上に部分になります。
こちらもPA-APIを使用する際には必要になります。
SDKの取得
今回はpythonのSDKを使っていきます。
SDKパッケージは以下から取得することができます。今回は以下からpythonで取得
https://webservices.amazon.com/paapi5/documentation/quick-start/using-sdk.html
python以外にもPHP、Java、Node.jsも用意されていますね。
SDKを解凍すると以下のようなファイル構成になっていると思います。
必要なpythonモジュールのインストール
では、ここからPA-APIを使えるように環境構築を行っていきます。
環境構築を行う際はvirtualenv等で仮想環境を作成するのをオススメします。
(めんどくさい...。特に必要ない方は不要です。)
それでは、セットアップをしていきます。
- pipモジュールのインストール
pip install paapi5-python-sdk
上記でうまく行かない場合は
pip install git+https://github.com/amzn/paapi5-python-sdk.git
上記の方法でもうまく行かない場合は、(...僕もそうでしたが)
こちらでどうでしょうか。僕はこちらで動作しました。
python setup.py install --user
- モジュールインストール確認
pythonインタプリタ等でimportできることを確認しておきましょう。
import paapi5_python_sdk
- その他必要なモジュールのインストール
SDKパッケージ内にあるrequirements.txt
に記載のモジュールを取得してきます
pip install -r requirements.txt
ここまで、できれば環境構築は完了です。
PA-APIを使用
認証情報の設定
APIを使用する際は以下の認証キーの記述等を変更する必要があります。
(テキストエディター等でgrepを行い一括置換を行うと便利です。)
- アクセスキーの設定
ファイル内のaccess_key = "<YOUR ACCESS KEY>"
の部分をすべてaccess_key = "上記で取得したアクセスキー"
に置き換えます。
- シークレットキーの設定
ファイル内のsecret_key = "<YOUR SECRET KEY>"
の部分をすべてaccess_key = "上記で取得したシークレットキー"
に置き換えます。
- アソシエイトタグの設定
ファイル内のpartner_tag = "<YOUR PARTNER TAG>"
の部分をすべてaccess_key = "上記で取得したアソシエイトタグ"
に置き換えます。
また、日本のAmazonサイトから商品情報を取得するには以下の書き換えも必要になります。
- ホストの設定
ファイル内のhost = "webservices.amazon.com"
の部分をすべてhost = "webservices.amazon.co.jp"
に置き換えます。
- リージョンの設定
ファイル内のregion = "us-east-1"
の部分をすべてregion = "us-west-2"
に置き換えます。
- 言語選択の設定
ファイル内のlanguages_of_preference = ["es_US"]
の部分をすべてlanguages_of_preference = ["ja_JP"]
に置き換えます。
- マーケットプレイスの設定
ファイル内のmarketplace="www.amazon.com"
の部分をすべてmarketplace="www.amazon.co.jp"
に置き換えます。
- 言語選択の設定
ファイル内のlanguages_of_preference = ["es_US"]
の部分をすべてlanguages_of_preference = ["ja_JP"]
に置き換えます。
PA-APIの種類
SDKの中には5種類のAPI実行スクリプトがありますので必要に応じて使い分けることができます。
応答はJson形式となります
sample_get_browse_nodes_api.py
ジャンル別に商品情報を取得することができます。
(メソッドはget_browse_nodes()
の部分になります)
APIのリファレンスは以下
https://webservices.amazon.com/paapi5/documentation/getbrowsenodes.html
browse_node_ids
にリスト形式に取得を行いたい商品のジャンルを指定します。
ジャンルのIDは以下を参考に
Amazonカテゴリ一覧 23,420 件(BrowseNodeデータ収集結果)
sample_get_items_api.py
ASINから商品情報を取得することができます。
(メソッドはget_items()
の部分になります)
APIのリファレンスは以下
https://webservices.amazon.com/paapi5/documentation/get-items.html
item_ids
にリスト形式で取得を行いたい商品のASINを指定します。
ASINは1リクエストにつき最大10個までリスト形式で設定できます。
sample_get_variations_api.py
ASINから出品商品の関連情報まで取得することができます。
(メソッドはget_variations()
の部分になります)
APIのリファレンスは以下
https://webservices.amazon.com/paapi5/documentation/get-variations.html
asin
に取得を行いたい商品のASINを指定します。
sample_search_items_api.py
キーワードとカテゴリから商品情報を取得することができます。
(メソッドはsearch_items()
の部分になります)
APIのリファレンスは以下
https://webservices.amazon.com/paapi5/documentation/search-items.html
keywords
に取得を行いたい商品のキーワードを指定します。
search_index
に取得を行いたい商品の検索カテゴリを指定します。
item_count
に取得を行いたい商品の検索結果数を指定します。
1リクエストにつき最大10個の検索結果を返します
sample_request_with_conn_pool_settings.py
コネクションプールを作成し、キーワードとカテゴリから商品情報を取得することができます。
こちらは上記のsample_search_items_api.py
とメソッドは同じです。
SDKを用いると簡単にAmazonAPIを使用できますね。
コメント