はじめに
一般に、「ショッピングサイトを利用する」と言えば、人間がウェブブラウザでアクセスして利用することを意味します。しかし、本稿で扱うアクセスの主体はPHPのプログラムです。これは、「PHPに人間がアクセスしているふりをさせる」ということではありません。そうしなければならないようなウェブサイトもありますが、Amazonは、プログラムのためのインターフェイス(API)をAmazon Web Services(AWS)として公開しているため、簡単にプログラムでアクセスすることができます。
AmazonがAPIを公開していることには、さまざまな意義があります。まず、多くの開発者が、Amazonのための独自のオンライン店舗を作れるようになります。独自の店舗の売り上げの一部をその開発者が得られる仕組み(アソシエイト)が、開発者へのインセンティブになっています。店舗の数が増えればAmazon全体の売り上げも上がることが期待されますから、APIやアソシエイトの仕組みを用意することは、Amazonの利益にもなっています(当然ですが)。また、Amazonの膨大な商品データベースを利用できるという意義もあります。実際、今日無料で利用できる書誌データベースとして、Amazonのものより使いやすいものを筆者は知りません。
本稿では、AWSをPHPで操作する方法を説明します。
AWSを利用する方法には大きく分けてRESTとSOAPがあります。RESTは必要な操作をURLの形で記述してサーバに送信し、結果をXMLで受け取る方式です。SOAPは双方向ともXMLを利用します。本稿ではまず、簡単なため多くの開発者に利用されているRESTを紹介します(SOAPは本稿では扱いません)。次に、より抽象度の高い方法であるPEAR Services_Amazonを紹介します。Services_Amazonは内部でRESTを使いますが、そのことを(ほとんど)意識しなくてよいように作られています。AWSへの問い合わせ結果を一定時間キャッシュする仕組みも用意されています。
必要な環境
XAMPP for Windows 1.6.4に含まれるPHP 5.2.4にServices_Amazon 0.7.1をインストールして動作を確認しました。利用したAWSのバージョンは2008-06-23です。
準備
パッケージのインストール
コマンドプロンプトから次のようにして、Services_Amazonをインストールします。関連パッケージもインストールするために-alldeps
が必要です。
また、コマンドの実行前に、「c:\xampp\php\pear.ini」の「"\xampp」を「"C:\xampp」に修正します(ディレクトリはインストール先に応じて適宜読み替えてください)。
> c: > cd \xampp\php > pear install --alldeps services_amazon-beta
各種IDの取得
AWSを利用するためには、「登録ID」と呼ばれるものを取得しなければなりません。本稿の内容を実際に試したい場合は、AWSのサイトで登録IDを取得してから先に進んでください(AWSについてまったく知らない場合は、このページに掲載されているFAQに目を通しておくといいでしょう)。
紹介料を受け取るサービスのためのアソシエイトIDも取得しておくといいでしょう(本稿では、ショッピングカートを利用する際に必要になります)。アソシエイトIDはアソシエイト・プログラムのサイトで取得できます。