Amazon Product Advertising API を利用してみる
Amazonの商品情報をAPIから取得できるかどうかを試してみる。
Amazon Product Advertising API とは
Amazonの商品情報を利用して独自のEコマースサイトを作成するためのAPI群。 これにより、APIを叩くだけでAmazonの商品情報をはじめ、様々な情報を取得できる。
Amazon Product Advertising API を利用する
詳細については、以下のサイトが非常に分かりやすいので、参考にしてください。
Amazon Web サービス入門(Product Advertising API)
■ APIを利用する上で必要なもの
- トラッキングID
事前にAmazonアソシエイト・プログラムへの参加し、トラッキングIDを取得 *1
参考:Amazonアソシエイト・プログラムへの参加
- Access Key ID, Secret Access Key
Product Advertising API アカウントを作成し、上記のID, Keyを取得
参考:Access Key IDとSecret Access Keyの取得
Product Advertising APIはREST APIなので、XMLが取得できるかどうかだけなら、
ブラウザのURL部分に下記のリクエストを入力すればXMLが取得できるはず。
※AccessKeyID部分を自分のAccess Key IDに置き換える
※プログラムからXMLを取得する際は、署名などを加えたりしてめんどくさい。
http://ecs.amazonaws.jp/onca/xml? Service=AWSECommerceService &AWSAccessKeyId=[AccessKeyId] &Operation=ItemSearch &SearchIndex=Books &Title=Harry%20Potter &Version=2009-07-01
■ APIを利用してみる
yum -y install httpd php pear pear install Services_Amazon-0.9.0
※Amazonにリクエストを送る際に、タイムスタンプ、署名を加える必要があるので、今回は、PearのServices_Amazonを利用する。
- Services_Amazonを利用し、リクエストを取得する
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <title>Amazon API</title> </head> <body> <h1>Amazon API</h1> <form action="" method="post"> <input type="text" placeholder="Keyword" name="test"> <button type="submit" class="btn">Submit</button> </form> <?php require_once "Services/Amazon.php"; $amazon = new Services_Amazon(); $amazon->setLocale("JP"); $amazon->setAccessKeyID("****************"); $amazon->setSecretAccessKey("*************************"); $amazon->setAssociateID("************"); $options = array(); $options['Keywords'] = $_POST['test']; $options['Sort'] = 'salesrank'; $options['ResponseGroup'] = 'ItemIds,ItemAttributes,Images'; $result = $amazon->ItemSearch('Books', $options); if(!empty($_POST['test'])){ if (PEAR::isError($result)) { // Error $error = $amazon->getError(); echo $error['Code']; echo $error['Message']; } else { // Correct echo "<pre>"; var_dump($result); echo "</pre>"; } } ?> </body> </html>
詳しい関数の説明については、Services_Amazon を参照。
XMLで取得したい情報はResponseGroupで指定。
今回はAmazon Product Advertising APIを利用して、商品の検索しか行なっていませんが、他にもカートの追加、削除であったり色々とできるみたいなので、気になる方は調べてみてください。
以上
*1:Amazonアソシエイト・プログラムへの参加の為に、利用するWEBサイトの情報を入力するんだけど、しっかりとしたサイトや目的がないとAmazonの審査が通らない。審査に落ちても確認はできないがAPIは利用できるっぽいので、審査が通らない場合は、トラッキングID, Access Key ID, Secret Access Keyは確認したらメモしといたほうが良い。