EC studio EC studio 技術ブログ

iPhoneとツイッターで会社は儲かる」がAmazonで販売開始され、
EC studioでは様々なプロモーション活動を行っております。

プロモーションの効果測定をするために、Amazonの商品ページへアクセスして
Amazonの中で現在何位なのか順位チェックを行っていましたが、
面倒くさくなったので自動ランキング取得システムを作成しました。

今回はAmazon APIを使って、簡単にAmazonの商品情報(ランキング)を
取得する方法をご紹介いたします。

今回の完成品

こんな感じでAmazonの商品情報を取得できます。
プログラム実行結果
[ 使用サービス ] ※無料
・Amazon API
PEARServices_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」を選択

Amazon Webサービス - Security Credentials

3.「Access Credentials」に記載されている
「Access Key ID」と「Secret Access Key」を取得
※「Show」をクリックすると「Secret Access Key」が表示されます

Amazon 「Access Key ID」と「Secret Access Key」

商品識別コードの取得

Amazonの商品情報を取得するのに、商品識別コードを使用します。
本の場合は、ISBNの10桁コード(ISBN-10)を使用します。
※本以外の商品の場合はASINコードを使用します

Amazon登録情報 商品識別コード(ISBN)
※Amazon商品ページより抜粋

Services_Amazonをインストール

PEARのServices_Amazonのライブラリを使ってAmazonにアクセスし、
ランキング情報を取得します。
※PEARとはPHPの標準のオープンソースのクラスライブラリです。

Windowsのインストール方法

インストールは以下のコマンドを実行します
PEAR インストールコマンド
※PEARのServices_AmazonのDownloadページより

ローカル環境(xampp)にインストール

今回は、ローカル環境(xampp)にインストールしてみます。
※xamppとはApacheFriendsが提供しているフリーソフトで、
PHPの開発環境を簡単にインストールして使うことができます。
※Services_Amazonは標準で用意されていないので、手動でインストール。

1.コマンドプロンプトを立ち上げる
Windows > すべてのプログラム > アクセサリ > コマンド プロンプト

2.ディレクトリ変更
>cd C:\xampp\php
xampp ディレクトリ変更

※パスはご自分のxamppがインストールしてある環境にあわせてください

3.PEAR HTTP_Request2のインストール
>pear install -a HTTP_Request2-alpha
PEAR HTTP_Request2のインストール

※Services_Amazonで使用しているHTTP_Request内で使用しているので、
まずこちらをインストール。

※インストールのバージョン(state)は最新のものを指定してください

※インストールする際に、依存するパッケージも合わせてインストールするため、
オプションに「-a」を指定しています。

4.PEAR Services_Amazon のインストール
>pear install -a Services_Amazon-beta
PEAR Services_Amazonのインストール

※インストールのバージョン(state)は最新のものを指定してください

4.インストールが終わったら確認(インストール・パッケージ一覧)
>pear list
PEAR インストール・パッケージ一覧

※「Services_Amazon」最新版(2010/02/16時点で0.8.0)が
インストールされていることを確認

その他の環境や方法でのインストール

PEAR公式サイトのインストールマニュアルを御覧下さい。

ItemLookupを使用してAmazon商品情報を取得

サンプルコード

PEARのServices_Amazonを使用してPHPでAmazonから商品情報を
取得して、結果を表示するプログラム

PHP:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5. <title>Amazon商品ランキング</title>
  6. </head>
  7. <body>
  8. <?php
  9.     //アクセスキー設定
  10.     $access_key_id = 'XXXXXXXXXXXXXXXXX';
  11.     $secret_access_key = 'XXXXXXXXXXXXXXXXXXXXXX';
  12.    
  13.     //Amazonサービス情報取得
  14.     include_once 'Services/Amazon.php';
  15.     $amazon = new Services_Amazon($access_key_id,$secret_access_key);
  16.     $amazon->setLocale('JP');
  17.    
  18.     //商品情報取得
  19.     $options = array(
  20.         'ResponseGroup' => 'ItemAttributes,SalesRank,Images');
  21.     $result = $amazon->ItemLookup('4839934444',$options);
  22.    
  23.     if (!PEAR::isError($result)){
  24.         //商品情報表示
  25.         echo "<img src='".$result['Item'][0]['MediumImage']['URL']."'><br />";
  26.         echo $result['Item'][0]['ItemAttributes']['Title'].'<br />';
  27.         echo $result['Item'][0]['SalesRank'].' 位 ('.date('Y/m/d H:i:s').')';
  28.     }else{
  29.         //エラー処理
  30.         $error_message = 'Amazonの情報取得に失敗しました';
  31.         if ($error = $amazon->getError()){
  32.             $error_message .= '('.$error['Message'].')';
  33.             $error_message .= '【Code:'.$error['Code'].'】';
  34.         }else{
  35.             $error_message .= '('.$result->getMessage().')';
  36.         }
  37.         echo $error_message;
  38.     }
  39. ?>
  40. </body>
  41. </html>

・アクセスキー(10行目,11行目)は「サービス開始準備」で取得したアクセスキーを指定してください。

・Amazonの何の商品情報を取得するかはItemLookupの第二引数のResponseGroupで指定します。

※Services_AmazonのItemLookupに関するドキュメント(英語)はこちら

PEAR::Services_Amazonを用いると取得した情報等はXMLではなく
連想配列で返されるのでPHPから操作するにはとても便利です。

実行結果

プログラム実行結果

活用サンプル例(おまけ)

弊社では、プログラムを定期実行して、取得したランキングを保存して
色々な形で簡単にAmazonランキングを把握できるようにしています。

レポートで推移を表示

レポートにすることで、過去のランキング変動がすぐに分かります。

Amazonランキングレポート

Twitterで自動的につぶやくbot

現在のランキングをすぐに把握することが出来ます。
タイムラインに流れてくるので、操作をするのさえ面倒くさい人にはおすすめ。

2010-02-16 20-36-27
※Amazonランキングつぶやきbotはこちら

とても簡単に、Amazonのリアルタイムの商品情報を取得でき、
活用することができるので、ぜひ試してみてください。


関連した記事:

■ 「日本でいちばん社員満足度が高い会社の非常識な働き方」

日本でいちばん社員満足度が高い会社の非常識な働き方

この記事へのコメント (2)

大変参考になる記事と思い試させていただきました。タイトルと時刻は表示されましたが、画像とセールスランクは表示されませんでした。どこが悪いのか教えていただければと思いメールいたしました。パソコンはwindows7です。アマゾンの方に変更
があったのかと思いヘルパーでデータを取ってみたのですが変更はないようです。
よろしくお願いいたします。

投稿者: 遠藤 逸郎 | 2011/01/27 木曜日 2:14:14

先日、プログラムの事で質問した者です。動作しました。optionsのsの入れ忘れでした。大変、参考になる良い記事でした。ありがとうございました。

投稿者: 遠藤 逸郎 | 2011/01/28 金曜日 22:21:18
コメントを投稿

取材に関するお問い合わせ


(担当:大崎)

EC studio 採用情報の詳細はこちら

投稿者
全ECスタッフ導入の
おすすめソフトウェア
人気のエントリー
カテゴリー
最近のエントリー
アーカイブ

BLOG オフィシャルブログ

社長ブログ
EC studio社長ブログ

ブログを読む

技術ブログ
技術部のブログ

ブログを読む

デザインブログ
デザイン部のブログ

ブログを読む

Copyright© EC studio, All Rights Reserved.