Amazon APIを使って商品情報を取得

Tag:

Amazonが公開しているProduct Advertising API(PAAPI)を利用するとAmazonで取り扱われている商品情報を取得できます。

PAAPIは「時刻認証パラメータの作成」や「パラメータの並び替え」などが必要で、他のWebAPIと比べると利用手順が複雑です。そこで、ここではより手軽にPAAPIを利用するためにPEARのServices_Amazonライブラリを利用します。

※作業環境
Windows8.1のXAMPP環境を利用

事前準備① PAAPIに必要なパラメータを取得

PAAPIを利用するには、
・AssociateTag(アソシエイトタグ)
・AWSAccessKeyId(アクセスキーID)
・AWSSecretKey(シークレットキー)
といったパラメータが必要です。

AssociateTagの取得

AmazonAPIが返す情報に「商品URL」の情報があります。AmazonAPIを利用する際にアソシエイトタグを指定すると、このURLに自動的にアソシエイトタグを設定してくれます。

アソシエイトタグは、アソシエイト・プログラムに登録することで取得できます。https://affiliate.amazon.co.jp/にアクセスして「無料アカウント作成」のところから登録作業を進めることができます。
php_amazon_1

無事登録が完了後、amazonアソシエイトにログインすると下記矢印の示すところで「アソシエイトタグ」の情報を確認することができます。
php_amazon_2

AWSAccessKeyId、AWSSecretKeyの取得

PAAPIの開発者として登録することで取得できます。https://affiliate.amazon.co.jp/gp/advertising/api/detail/main.htmlにアクセスして「アカウント作成」のところから登録作業を進めることができます。
php_amazon_3

無事登録が完了後、「Manage Your Account」をクリックします。
php_amazon_4

「こちらのリンク」をクリックします。
php_amazon_5

初めてアクセスした場合、「新しいアクセスキーを作成」をクリックします。
php_amazon_6

「キーファイルのダウンロード」をクリックしてください。シークレットキーの情報は、ここでダウンロードしないと手に入れることができません。
php_amazon_7

ダウンロードしたCSVファイルで「アクセスキーID」と「シークレットキー」の情報を確認できます。

事前準備② Services_Amazonライブラリをインストール

Services_Amazon」は、Amazon APIを簡単に使えるPEARのライブラリです。

コマンドプロンプトを開き下記コマンドを実行してインストールします。

pear install --alldeps services_amazon-beta

php_amazon

以上で利用準備が整いました。

商品検索 ItemSearch

下記ソースは、「HealthPersonalCare」のカテゴリの中から「目疲れ」というキーワードをもとに商品情報を取得するサンプルソースです。

//必須パラメータ
$associatetag = 'XXXXXXXXXXX';      // 事前準備で取得したアソシエイトタグ情報
$access_key_id = 'XXXXXXXXXXX';     // 事前準備で取得したアクセスキーID情報
$secret_access_key = 'XXXXXXXXXXX'; // 事前準備で取得したシークレットキー情報

//初期設定
include_once 'Services/Amazon.php';
$amazon = new Services_Amazon($access_key_id, $secret_access_key, $associatetag);
$amazon->setLocale('JP');

//オプション設定
$options = array(
    'Keywords' => '目疲れ',
    'Sort' => 'salesrank',                      // 並び替え方法(売れている順番)
    'ResponseGroup' => 'ItemAttributes,Images'  // 取得する情報
);
// 第1引数にカテゴリを指定し、第2引数に検索条件や取得する情報などを指定
$result = $amazon->ItemSearch('HealthPersonalCare', $options);

if (!PEAR::isError($result)) {
    foreach ($result['Item'] as $item) {
        echo $item['ASIN'] . '<br />';
        echo "<img src='" . $item['MediumImage']['URL'] . "'><br />";
        echo $item['ItemAttributes']['Title'] . '<br /><br />';
    }
} else {
    // エラー表示
    $e_msg = 'Amazon情報取得失敗';
    if ($error = $amazon->getError()) {
        $e_msg .= '<br /> ' . $error['Message'];
        $e_msg .= '<br /> ' . $error['Code'];
    } else {
        $e_msg .= '<br /> ' . $result->getMessage();
    }
    echo $e_msg;
}

実行すると下記のように、「ASID」「商品画像」「商品タイトル」が表示されます。
php_amazon_sample1

商品データの表示 ItemLookup

下記ソースは、商品ID(ASIN)が “B001OGJVAO” である商品情報を取得するサンプルソースです。

//必須パラメータ
$associatetag = 'XXXXXXXXXXX';      // 事前準備で取得したアソシエイトタグ情報
$access_key_id = 'XXXXXXXXXXX';     // 事前準備で取得したアクセスキーID情報
$secret_access_key = 'XXXXXXXXXXX'; // 事前準備で取得したシークレットキー情報

//初期設定
include_once 'Services/Amazon.php';
$amazon = new Services_Amazon($access_key_id, $secret_access_key, $associatetag);
$amazon->setLocale('JP');

//オプション設定
$options = array(
    'ResponseGroup' => 'ItemAttributes,Images'
);

//商品ID(ASIN)が "B001OGJVAO" である商品情報を取得
$result = $amazon->ItemLookup('B001OGJVAO', $options);

if (!PEAR::isError($result)) {
    //商品情報表示
    echo $result['Item'][0]['ItemAttributes']['Title'] . '<br />';
    echo "<img src='" . $result['Item'][0]['MediumImage']['URL'] . "'><br />";
} else {
    // エラー表示
    $e_msg = 'Amazon情報取得失敗';
    if ($error = $amazon->getError()) {
        $e_msg .= '<br /> ' . $error['Message'];
        $e_msg .= '<br /> ' . $error['Code'];
    } else {
        $e_msg .= '<br /> ' . $result->getMessage();
    }
    echo $e_msg;
}

実行すると下記のように、「商品タイトル」「商品画像」が表示されます。
php_amazon_sample2

パラメータに関する補足情報

PAAPIの概要についてはhttps://affiliate.amazon.co.jp/gp/advertising/api/detail/main.htmlで確認できます。「サービスの概要」「参考情報へのリンク」「リクエスト数の上限」など確認しておくと良いかと思います。

Operation(操作)

ItemLookupとItemSearchの詳しい情報は、「Product Advertising API 開発者ガイド」上の「ItemLookup」と「ItemSearch」のところで確認できます。
php_amazon_8

SearchIndex

利用可能なカテゴリは、「Product Advertising API 開発者ガイド」上の「国ごとに使用可能なサーチインデックス」のところで確認できます。
php_amazon_9

検索条件

※よく利用するパラメータ
Keywords       キーワードで検索
MinimumPrice   最低価格を指定
MaximumPrice   最高価格を指定
Condition      商品の状態(新品、中古など)を指定
ItemPage       何ページ目の検索結果を取得するか指定

Sort(並び替え)

SearchIndexごとに指定できる並び替え方法は、「Product Advertising API 開発者ガイド」上の「国ごとのItemSearchの並び替え値」-「JPサイトの並び替え値」のところで確認できます。
php_amazon_10

※よく利用するパラメータ値
salesrank         売れている順番
pricerank         価格の安い順番
-pricerank        価格の高い順番
price             価格の安い順番
-price            価格の高い順番
titlerank         アルファベット順(AからZへ)
-titlerank        アルファベット順(ZからAへ)
-orig-rel-date    発売日順(新しいものから古いものへ)
orig-rel-date     発売日順(古いものから新しいものへ)

ResponseGroup(取得する情報の種類)

どういった情報を取得したいか指定するパラメータです。

※よく利用するパラメータ
ItemAttributes 商品の詳細情報
Images         商品の画像
Reviews        レビュー
SalesRank      ランキング
Similarities   関連商品

スポンサーリンク