littlepad blog

PEAR::Services_Amazon の ItemSearch を使ってみた

Services_Amazon
http://pear.php.net/package/Services_Amazon/redirected

$amazon = new Services_Amazon('アクセスキーID', 'アクセスシークレットキー', 'アソシエイトID');

// デフォルトではamazon.comの検索結果として帰ってくるので、
// 検索対象を日本にしたい時はこのようにする
$amazon->setBaseUrl('http://ecs.amazonaws.jp/onca/xml');

$options['Keywords'] = $keyword;
$options['Sort'] = 'salesrank';
$options['ItemPage'] = 1;
$options['ResponseGroup'] = 'ItemIds,ItemAttributes,Images';
$response = $amazon->ItemSearch('Music', $options);

echo $response['TotalPages'];
echo $response['TotalResults'];

foreach($response['Item'] as $item) {
    echo $item['ItemAttributes']['Title'] ;
    echo $item['ItemAttributes']['Artist'];
    echo $item['ItemAttributes']['Publisher'];
    echo $item['DetailPageURL'];
    echo $item['SmallImage']['URL'];
    echo $item['SmallImage']['Width']['_content'] ;
    echo $item['SmallImage']['Height']['_content'];
}

レスポンスグループの値の種類などは下記のリファレンスを参照。

Product Advertising API 開発者ガイド (API Version 2010-09-01)
https://images-na.ssl-images-amazon.com/images/G/09/associates/paapi/dg/index.html

サンプルページ
ビートルズで検索した結果

はまったところ
$options の ItemPage は現在最大10までしか指定出来ず、
それより大きい値を指定するとエラーが返ってくる。
よって、1ページに表示する結果は10件なので、検索結果の最大値は100件となる。

heteml の Services_Amazon のメソッド類が0.9.0とは全く違ったので個別にアップした。

モバイルバージョンを終了