PHPからAmazon Webサービスを使う方法として、必要なパラメータを調べcurl等々を用いてアクセス等々方法がいろいろあります。そこで今回は簡単に使うことができるPEAR::Services_Amazonを紹介したいと思います。

インストールは、

pear install --alldeps services_amazon-beta

Services_Amazonは現在ベータ版であり且つ依存しているパッケージが少なからずあるので以上のようなインストールコマンドになります。Amazon Webサービスを利用するには開発者登録を行わなければ利用することができませんので、使う前にその登録を行っておきます。登録方法についてここでは詳しく説明しませんが、以下のURLから登録サイトへ進むことができます。

http://www.amazon.co.jp/gp/feature.html?docId=451209

登録を終えたら早速使ってみましょう。

<?php
require_once("Services/AmazonECS4.php");

$option = array(
    
"subscription_id" => "登録ID",
    
"locale" => "JP"
);

$amazon = new Services_AmazonECS4($option["subscription_id"]);
$amazon->setLocale($option["locale"]);
$item_list $amazon->ItemSearch("Books", array("Keywords" => "Web",
"ResponseGroup" => 'Images'));

var_dump($item_list);
?>

上記のサンプルコードを実行してください。コード内の「登録ID」部分は開発者登録をしたときに得られたIDを記入してください。実行すると、「Web」に関連した書影の情報が格納された配列を表示します。流れを説明すると、まずServices_AmazonECS4のインスタンスを作成し、setLocale()メソッドで日本のAmazonで検索するよう指定し、ItemSearch()メソッドで指定されたオプションを元に検索します。

また、コード内の最後の行のvar_dump部分を以下のようなコードに置き換えると、

foreach ($item_list["Item"] as $key => $value){
  $img_src = $value["SmallImage"]["URL"];
  $img_height = $value["SmallImage"]["Height"]["_content"];
  $img_width = $value["SmallImage"]["Width"]["_content"];
  print('<img src="'.$img_src.'" height="'.$img_height.'"
    width="'.$img_width.'" />');
}

書影が表示されます。PEAR::Services_Amazonを用いると取得した情報等はXMLではなく連想配列で返されるのでPHPから操作するにはとても便利になると思います。これ以外にも様々な機能が用意されているので、興味のある方は使ってみてはいかがでしょうか。

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