デジットさんの生活便利サイトトップへ デジットさんのPEARでAmazonECS(商品検索)

トップページ > ホームページ作成 > PEARでAmazonECS(2)

PHPのPEARを使った「AmazonECS」の利用方法(商品検索)です。実用できるところまでのサンプルリストを、紹介します。PEARを使うと驚くほど簡単に「AmazonECS」からデータを取得できますので、アフィリエイトも簡単にはじめられます。

PEAR::Services_Amazonで商品検索する

PEARでAmazonECSでは、商品コードから商品をさがしましたが、実際にはキーワードから商品を探すことのほうが多いと思います。そこで、ここではキーワードを指定したAmazonの商品検索の方法を紹介します。実際に使えるレベルですので、サンプルリストを参考にして取り組んでください。
サンプルリストは、次の通りです。
PEARでAmazonECSから変った所を中心に説明します。 まず、使いやすいように「サーチインデックス」や「キーワード」などを変数にしてまとめました。今回は、サーチインデックス'Books'、キーワード'PHP'、ブラウズノード( 466298:コンピュータ・インターネットのカテゴリー、カテゴリーを指定しない場合は、'null')、ソート条件'salesrank'(売れている順)で設定しました。
次に、Amazonのアクセスには、1秒1コールのルールがありますので、キャッシュを使います。「require_once 'Cache.php'」でキャッシュを宣言して、「setCache('file',array('cache_dir' => '/ここにキャッシュディレクトリへのフルパスを記載/cache/'));」でキャッシュのディレクトリパスを指定します。キャッシュのディレクトリは自分で作っておきます。実行ファイルと同じディレクトリに「cache」ディレクトリを作る場合には、「array('cache_dir' => 'cache/')」と記載します。自分の好きなところに「cache」ディレクトリを作った場合は、ディレクトリのフルパスを指定します。「cache」ディレクトリの属性(パーミッション)は、「757」か「777」に設定します。「setCacheExpire(3600)」は、キャッシュの保持時間(秒)です。この例では、1時間に設定しました。これで、1時間以内に同じオペレーションがされた場合は、キャッシュを参照しAmazonにはアクセスせずにすみます。「$options」で検索条件を指定して、「ItemSearch ( $search,$options )」を実行すれば、目的の商品を検索できます。1ページで取得できる商品は10個です。
今回は、商品価格も表示してみました。 取得した配列のデータを表示したい時は、「print_r ($result);」で確認できます。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>PEAR Amazonウエブサービス(商品検索)</title>
</head>
<body>
<?php
$search = 'Books'; //サーチインデックス
$key_w = 'PHP'; //キーワード
$brows_n = 466298 ; //ブラウズノード
$sort_i = 'salesrank'; //ソート条件
$i_page = 1; //表示するページ
//PEAR::Amazon
require_once 'Services/AmazonECS4.php';
//PEAR::Cache キャッシュ
require_once 'Cache.php';
$amazon = new Services_AmazonECS4('自分のAccess Key ID','自分のAssociate ID');
//Access Key ID,Associate ID
$amazon -> setLocale('JP');
$amazon -> setCache('file',array('cache_dir' => '/ここにキャッシュディレクトリへのフルパスを記載/cache/'));
$amazon -> setCacheExpire(3600); //キャッシュの保持時間(秒)
$options = array(
'Keywords'=> $key_w ,
'BrowseNode' => $brows_n,
'Sort' => $sort_i ,
'ResponseGroup'=>'Small,Images,ItemAttributes,//情報種類/画像/価格
'ItemPage' => $i_page ,
);

//Accessに接続しデータを取得
$result = $amazon -> ItemSearch ( $search,$options );
if (PEAR::isError($result)){
die ( $result -> message );
}
//結果表示
$html = <<< EOT
<div style="text-align:center">
<a href = "%s">
<img src ="%s" width ="%d" height="%d" /><br/>%s</a><br/>
%s<br/><br/>
</div>
EOT;
for ( $i = 0 ; $i <= (count($result['Item'])-1) ; $i++ ){
//画像取得
$img = null;
if (isset($result['Item'][$i]['MediumImage'])){
$img = $result['Item'][$i]['MediumImage'];
}
$src = $img ? $img['URL'] : 'noimg.jpg' ;
$width = $img ? $img['Width'] ['_content']: 100;
$height = $img ? $img['Height'] ['_content']: 100;
//表示
printf ( $html,
htmlspecialchars($result['Item'][$i]['DetailPageURL']),
htmlspecialchars($src),
htmlspecialchars($width),
htmlspecialchars($height),
htmlspecialchars($result['Item'][$i]['ItemAttributes']['Title']),
htmlspecialchars($result['Item'][$i]['ItemAttributes']['ListPrice']['FormattedPrice'])
);
}
?>
</body>
</html>

これで、Services_AmazonのECS4の実用動作が出来ました。
レンタルサーバーのロリポップでは、動作確認できています。

AmazonECSの参考サイト

「AmazonECS」の「Technical Documentation」は、「Developer Connection」の中に掲載されています。次のサイトです。

  1. Developer Connection
  2. Technical Documentation(2007-02-22)

ホームページを公開するレンタルサーバーは、 ロリポップ! がお薦め、 PHP5を使うならPHP5から選ぼう。

関連ページ

ホームページ作成

アフィリエイト

デジットさんのホームページ入門に移行中

スポンサード リンク

Amazon.co.jpアソシエイト:
PHP&プログラミング

売れている順 新刊順

:%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%20php :php2_  :5

とことん!ホームページホームページ入門役立つサイトデジットさんのリストラ日記仮福真琴の精神科医はうそだらけ

2005-2010 Copyright © Digit-01 All Rights Reserved.