「iPhoneとツイッターで会社は儲かる」がAmazonで販売開始され、
EC studioでは様々なプロモーション活動を行っております。
プロモーションの効果測定をするために、Amazonの商品ページへアクセスして
Amazonの中で現在何位なのか順位チェックを行っていましたが、
面倒くさくなったので自動ランキング取得システムを作成しました。
今回はAmazon APIを使って、簡単にAmazonの商品情報(ランキング)を
取得する方法をご紹介いたします。
今回の完成品
こんな感じでAmazonの商品情報を取得できます。

[ 使用サービス ] ※無料
・Amazon API
・PEARのServices_Amazonライブラリ
※Amazon API とは
AmazonアソシエイトWebサービスが提供する「Product Advertising API」のこと
Amazonの商品情報や関連コンテンツをプログラムを通してアクセスできる
サービスが提供されています。
※PEARのServices_Amazonライブラリとは
PEARが提供するAmazon APIを簡単に使えるライブラリ
サービス開始準備
APIによるAmazonへのアクセスは、利用者毎のアクセスキーを使用した署名認証が
必要になります。
まずはアクセスキー(「Access Key ID」と「Secret Access Key」)を取得します。
1.Amazon Webサービスにログイン
http://aws.amazon.com/
※アカウントがない場合は以下を参考にアカウントを作成してください。
Product Advertising API アカウント作成 ヘルプ
2.ログイン後、「Account」メニューより、「Security Credentials」を選択
3.「Access Credentials」に記載されている
「Access Key ID」と「Secret Access Key」を取得
※「Show」をクリックすると「Secret Access Key」が表示されます
商品識別コードの取得
Amazonの商品情報を取得するのに、商品識別コードを使用します。
本の場合は、ISBNの10桁コード(ISBN-10)を使用します。
※本以外の商品の場合はASINコードを使用します
Services_Amazonをインストール
PEARのServices_Amazonのライブラリを使ってAmazonにアクセスし、
ランキング情報を取得します。
※PEARとはPHPの標準のオープンソースのクラスライブラリです。
Windowsのインストール方法
インストールは以下のコマンドを実行します

※PEARのServices_AmazonのDownloadページより
ローカル環境(xampp)にインストール
今回は、ローカル環境(xampp)にインストールしてみます。
※xamppとはApacheFriendsが提供しているフリーソフトで、
PHPの開発環境を簡単にインストールして使うことができます。
※Services_Amazonは標準で用意されていないので、手動でインストール。
1.コマンドプロンプトを立ち上げる
Windows > すべてのプログラム > アクセサリ > コマンド プロンプト
※パスはご自分のxamppがインストールしてある環境にあわせてください
3.PEAR HTTP_Request2のインストール
>pear install -a HTTP_Request2-alpha

※Services_Amazonで使用しているHTTP_Request内で使用しているので、
まずこちらをインストール。
※インストールのバージョン(state)は最新のものを指定してください
※インストールする際に、依存するパッケージも合わせてインストールするため、
オプションに「-a」を指定しています。
4.PEAR Services_Amazon のインストール
>pear install -a Services_Amazon-beta

※インストールのバージョン(state)は最新のものを指定してください
4.インストールが終わったら確認(インストール・パッケージ一覧)
>pear list

※「Services_Amazon」最新版(2010/02/16時点で0.8.0)が
インストールされていることを確認
その他の環境や方法でのインストール
PEAR公式サイトのインストールマニュアルを御覧下さい。
ItemLookupを使用してAmazon商品情報を取得
サンプルコード
PEARのServices_Amazonを使用してPHPでAmazonから商品情報を
取得して、結果を表示するプログラム
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
<html xmlns="http://www.w3.org/1999/xhtml">
-
<head>
-
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-
<title>Amazon商品ランキング</title>
-
</head>
-
<body>
-
<?php
-
//アクセスキー設定
-
$access_key_id = 'XXXXXXXXXXXXXXXXX';
-
$secret_access_key = 'XXXXXXXXXXXXXXXXXXXXXX';
-
-
//Amazonサービス情報取得
-
include_once 'Services/Amazon.php';
-
$amazon = new Services_Amazon($access_key_id,$secret_access_key);
-
$amazon->setLocale('JP');
-
-
//商品情報取得
-
$options = array(
-
'ResponseGroup' => 'ItemAttributes,SalesRank,Images');
-
$result = $amazon->ItemLookup('4839934444',$options);
-
-
if (!PEAR::isError($result)){
-
//商品情報表示
-
echo "<img src='".$result['Item'][0]['MediumImage']['URL']."'><br />";
-
echo $result['Item'][0]['ItemAttributes']['Title'].'<br />';
-
}else{
-
//エラー処理
-
$error_message = 'Amazonの情報取得に失敗しました';
-
if ($error = $amazon->getError()){
-
$error_message .= '('.$error['Message'].')';
-
$error_message .= '【Code:'.$error['Code'].'】';
-
}else{
-
$error_message .= '('.$result->getMessage().')';
-
}
-
echo $error_message;
-
}
-
?>
-
</body>
-
</html>
・アクセスキー(10行目,11行目)は「サービス開始準備」で取得したアクセスキーを指定してください。
・Amazonの何の商品情報を取得するかはItemLookupの第二引数のResponseGroupで指定します。
※Services_AmazonのItemLookupに関するドキュメント(英語)はこちら
PEAR::Services_Amazonを用いると取得した情報等はXMLではなく
連想配列で返されるのでPHPから操作するにはとても便利です。
実行結果
活用サンプル例(おまけ)
弊社では、プログラムを定期実行して、取得したランキングを保存して
色々な形で簡単にAmazonランキングを把握できるようにしています。
レポートで推移を表示
レポートにすることで、過去のランキング変動がすぐに分かります。
Twitterで自動的につぶやくbot
現在のランキングをすぐに把握することが出来ます。
タイムラインに流れてくるので、操作をするのさえ面倒くさい人にはおすすめ。

※Amazonランキングつぶやきbotはこちら
とても簡単に、Amazonのリアルタイムの商品情報を取得でき、
活用することができるので、ぜひ試してみてください。
関連した記事:
■ 「日本でいちばん社員満足度が高い会社の非常識な働き方」























ページの先頭に戻る
大変参考になる記事と思い試させていただきました。タイトルと時刻は表示されましたが、画像とセールスランクは表示されませんでした。どこが悪いのか教えていただければと思いメールいたしました。パソコンはwindows7です。アマゾンの方に変更
があったのかと思いヘルパーでデータを取ってみたのですが変更はないようです。
よろしくお願いいたします。
先日、プログラムの事で質問した者です。動作しました。optionsのsの入れ忘れでした。大変、参考になる良い記事でした。ありがとうございました。