ミライハック
  • Home
  • Categories
  • About

>> Home / インターネット

Amazon Product Advertising APIのPHP実装

∵ Takayoshi Saito ∴ 2013-03-23 ∞ 3'

Amazon APIは2種類ある

Amazon APIなどで検索すると、2種類のAPIの情報がヒットして混乱することがあります。1つはショッピング商品に関するAmazonアソシエイトのAPI。もう一つは、Amazon Web Service(AWS)のインスタンス制御に関するAPIです。これら2つを区別することなく「Amazon API」と呼んでいるサイトが多いのですが、AmazonアソシエイトAPIは正式にはAmazon Product Advertising APIといいます。今回はこのAmazon Product Advertising APIを使ったPHPの実装について解説します。

Amazonのアクセスキーとシークレットアクセスキーの取得

Access Key IDとSecret Access Keyの取得のページを参考に、Amazonアソシエイトのアクセスキーとシークレットアクセスキーを取得します。OAuthアプリケーションを作らっれた方ならば馴染みがあると思いますが、OAuthのコンシューマーキーやコンシューマーシークレットとほぼ同等の役割を果たします。

Amazon APIで検索するとsubscription_idに関する情報もヒットしますが、こちらはAWSのものですのでご注意ください。

PEAR::Services_Amazonのインストール

以下のコマンドで依存ライブラリも含めてPEAR::Services_Amazonをインストールします。

pear install -a Services_Amazon-beta
sudo pear install -a Services_Amazon-beta
WARNING: "pear/HTTP_Request" is deprecated in favor of "pear/HTTP_Request2"
WARNING: "pear/Net_URL" is deprecated in favor of "pear/Net_URL2"
WARNING: "pear/XML_Parser" is deprecated in favor of "pear/XML_Parser2"
WARNING: "pear/HTTP_Request" is deprecated in favor of "pear/HTTP_Request2"
downloading Services_Amazon-0.9.0.tgz ...
Starting to download Services_Amazon-0.9.0.tgz (18,504 bytes)
......done: 18,504 bytes
downloading HTTP_Request-1.4.4.tgz ...
Starting to download HTTP_Request-1.4.4.tgz (17,109 bytes)
...done: 17,109 bytes
downloading XML_Serializer-0.20.2.tgz ...
Starting to download XML_Serializer-0.20.2.tgz (35,634 bytes)
...done: 35,634 bytes
downloading Cache-1.5.6.tgz ...
Starting to download Cache-1.5.6.tgz (31,384 bytes)
...done: 31,384 bytes
downloading Net_URL-1.0.15.tgz ...
Starting to download Net_URL-1.0.15.tgz (6,303 bytes)
...done: 6,303 bytes
downloading Net_Socket-1.0.10.tgz ...
Starting to download Net_Socket-1.0.10.tgz (5,429 bytes)
...done: 5,429 bytes
downloading XML_Parser-1.3.4.tgz ...
Starting to download XML_Parser-1.3.4.tgz (16,040 bytes)
...done: 16,040 bytes
install ok: channel://pear.php.net/Cache-1.5.6
install ok: channel://pear.php.net/Net_URL-1.0.15
install ok: channel://pear.php.net/Net_Socket-1.0.10
install ok: channel://pear.php.net/XML_Parser-1.3.4
install ok: channel://pear.php.net/HTTP_Request-1.4.4
install ok: channel://pear.php.net/XML_Serializer-0.20.2
install ok: channel://pear.php.net/Services_Amazon-0.9.0

いくつかのパッケージでディプリケートに関するワーニングがでますが、今回は無視して問題ありません。

PHPで商品情報を取得

$linkとしてAmazonのリンクが渡ってきた時に、その商品のAmazon IDを取得して、商品画像をリンク付きでリスト表示するサンプルでコードを書きました。アクセスキーとシークレットアクセスキーとトラッキングIDはどこかで定数として定義しておくと良いでしょう。

     require_once 'Services/Amazon.php';
     $amazon = new Services_Amazon(ACCESS_KEY, SECRET_KEY, TRACK_ID);
     $amazon->setLocale('JP');

    $aurl = explode("/", $link);
    $aid = $aurl[5];

    $options = array(
        'ResponseGroup' => 'ItemAttributes,SalesRank,Images');
    $result = $amazon->ItemLookup($aid,$options);

    $amazonline .=  "- ".$result['Item'][0]['ItemAttributes']['Title']."\n";
    echo $amazonline;

こんな感じで書くと、とりあえず動作します。

次回はAWSの方のAmazon APIの使い方について書こうかな。

Search

Categories
  • LInux
  • インターネット
  • インフラ
  • エッセイ
  • ゲーム
  • システム開発
  • セキュリティ
  • データサイエンス
  • 国際関係
  • 政治
  • 歴史
  • 社会学
  • 自己紹介
  • 行ってきた

Pages
  • 齊藤貴義
  • 職務経歴
  • スクレイピング・ハッキング・ラボ サポートページ
  • 『爆速開発を支えるClaude Code上級者テクニック』サポートページ

2026 © Takayoshi Saito | Twitter GitHub | Built on Zola