Written by Manabu Bannai

Amazon APIを使って商品検索するPHPコード【配布・コピペOK】

PHP PROGRAMMING

更新情報:下記の方が簡単です。
» Amazon API Library:apai-ioの使い方とサンプルコード

Amazon APIを使って商品検索するコードです。勉強ついでにいじってみたので、ソースコードと一緒に公開します。
コードDLはこちら

Amazon API使って商品情報を抽出して、アフィでうはうは生活したい方は必読かもしれません!

スポンサードサーチ


Amazon APIを使った商品検索システム:まずは完成イメージから

Amazon APIを使った商品検索システム:まずは完成イメージか:
サンプルでは「東野圭吾」と商品検索しています。上記の感じで、商品がばーっと羅列されます。

どうやって作るのか気になり始めましたか?実は、簡単な2ステップで完了します。さすがAmazon神様ですね。

ステップ1.Amazon APIのアクセスキーとシークレットキーの取得

下記記事がわかりやすいです。順序をどおりに登録していけばOKです。
» 「Amazon API」の使い方を紹介します!最安値やランキング取得できるよ②-アクセスキーとシークレットキーの取得- – ぱんぶろ

ステップ2.下記のサンプルコードをコピペしてPHPが動く環境で実行する

コメント多めなのでほぼ理解できるかなと。

<!DOCTYPE html>
<html lang="ja">
<head>
<title>Amazon APIを使って商品検索するサンプルコード</title>
<meta charset="utf-8">
<!-- Bootstrap読み込み(スタイリングのため) -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css">
</head>
<body>

<?php

// Amazon APIのアクセスキーとシークレットキーを入力
define("Access_Key_ID", "XXXXXXXXXXXXXXXXXXXXXXXXXX");
define("Secret_Access_Key", "XXXXXXXXXXXXXXXXXXXXXXXXXX");

// アソシエイトIDの入力
define("Associate_tag", "XXXXXXXXXXXXXXXXXXXXXXXXXX");

// 本のカテゴリから「東野圭吾」で検索
ItemSearch("Books", "東野圭吾");

//Set up the operation in the request
function ItemSearch($SearchIndex, $Keywords){

  // Amazon APIの仕様に沿ったリクエスト出力用のPHPスクリプト
  include("base_request.php");

  $amazon_xml = simplexml_load_string(file_get_contents($base_request));

  foreach($amazon_xml->Items->Item as $item) {

    $item_id = $item->ASIN; //ASIN
    $item_title = $item->ItemAttributes->Title; // 商品名
    $item_author = $item->ItemAttributes->Author; // 著者
    $item_publicationdate = $item->ItemAttributes->PublicationDate; // 発売日
    $item_publisher = $item->ItemAttributes->Publisher; // 出版社
    $item_url = $item->DetailPageURL; // 商品のURL
    $item_image  = $item->LargeImage->URL; // 商品の画像 ?>

    <div class="container">
      <div class="row">
        <div class="col-xs-4 col-xs-offset-4">
          <div class="col-xs-6">
            <!-- 商品の画像を表示 -->
            <img class="img-responsive" src="<?php
              if (isset($item_image)) {
                echo $item_image; // サムネイル画像がある場合
              } else {
                echo "http://bit.ly/29Ikwlm"; // サムネイル画像がない場合
              }
            ?>">
          </div>
          <div class="col-xs-6">
            <ul>
              <!-- 商品情報をリストで表示 -->
              <li><a href="<?php echo $item_url; ?>"><?php echo $item_title; ?></a></li>
              <li><?php echo $item_author; ?></li>
              <li><?php echo $item_publicationdate; ?></li>
              <li><?php echo $item_publisher; ?>)</li>
            </ul>
          </div>
        </div>
      </div>
    </div>

  <?php } // foreach end

} ?>

</body>
</html>

27行目の「base_request.php」とは?

Screen Shot 2016-07-13 at 6.17.51 PM
一言で表すと、Amazon APIの仕様に沿ったリクエスト出力用のPHPスクリプトです。Amazon APIで色々ぐぐると分かるのですが、Amazon APIを利用するには、Amazon APIの仕様にそったリクエストを作る必要があります。

詳しい話はAmazon APIのリクエストURL作成の概要に書かれていますが、とりあえずURLをいろんな形に変形しているんだなぁと理解しておけばとりあえず問題ないかなと。。どうしても気になっちゃうギークな方はググってください。

はい、終わりです。下記が参考ソースです。

※参考
Product Advertising API
PHP:アマゾンAPI (AWS)で検索結果を表示 – マイヤーの開発ブログ

人気記事無料あり:エンジニアの僕がおすすめするプログラミングスクール3社