HOME > >

Amazon Product Advertising APIのクライアントライブラリ

Amazon Product Advertising APIのクライアントライブラリ。 データ取得に必要なパラメータを設定することでクエリを生成してデータを取得してくれる。 GuzzleHttpも利用する。

インストール

composerからインストールできます。

HTML

  1. composer require exeu/apai-io

設定

アクセスキー、アソシエイトタグ、シークレットアクセスキー
Amazon Product Adverstising API を叩くのに必須の情報となるのでamazonでアカウント登録して発行しておきます。
サポートしている国
de, com, co.uk, ca, fr, co.jp, it, cn, es, in, com.br, com.mx, com.au
  1. <?php
  2. $conf    = new \ApaiIO\Configuration\GenericConfiguration();
  3. $client  = new \GuzzleHttp\Client();
  4. $request = new \ApaiIO\Request\GuzzleRequest($client);
  5.  
  6. // 設定
  7. $conf
  8.     ->setCountry('co.jp')
  9.     ->setAccessKey(\App\Amazon::ACCESS_KEY)
  10.     ->setSecretKey(\App\Amazon::SECRET_ACCESSKEY)
  11.     ->setAssociateTag(\App\Amazon::ASSOCIATE_TAG)
  12.     ->setRequest($request);
  13.  
  14. // Amazonへリクエスト、レスポンスを取得するクライアントオブジェクト
  15. $dao = new \ApaiIO\ApaiIO($conf);
  16. ?>

オペレーション

各オペレーションクラスは抽象クラスである\ApaiIO\Operations\AbstractOperationを継承している。 \ApaiIO\Operations\AbstractOperation\ApaiIO\Operations\OperationInterfaceを インターフェイスとして持つので自作オペレーションを作る場合は、getName()getOperationParameter()を 実装することになる。

Batch
BrowseNodeLookup
CartAdd
CartClear
CartCreate
CartModify
Lookup ASIN/SKU/UPC/EAN/ISBNなど商品IDを指定して商品データを取得する場合に利用
Search キーワードによる商品検索
SimilarityLookup

ASINを指定して検索

  1. <?php
  2. // オペレーション作成
  3. $lookup = new \ApaiIO\Operations\Lookup();
  4. $lookup->setItemId('4798052582');
  5. $lookup->setResponseGroup(['Large']);
  6.  
  7. try {
  8.     $response = $dao->runOperation($lookup);
  9.     var_dump($response);
  10. } catch (\Exception $e) {
  11.     echo '[エラー]';
  12.     echo $e->getMessage();
  13. }
  14. ?>

って感じで実行したいんだけど、RequestThrottledエラー。 リクエスト回数が多すぎて制限的なメッセージではあるけど実際に売上の実績がない場合もこのエラーっぽい。

ってことでこれ以上、検証できないので売り上がるのを待つしかない。悲しい。

実行結果

Server error: `GET http://webservices.amazon.co.jp/onca/xml?AWSAccessKeyId=[アクセスキー]&AssociateTag=[アソシエイトタグ]&ItemId=4798052582&Operation=ItemLookup&ResponseGroup=Large&Service=AWSECommerceService&Timestamp=2019-03-17T20%3A52%3A44Z&Version=2013-08-01&Signature=eUXew3BZa7aCPUH5l9%2BpIO4m9dclS4fB2uf3S6IVPOU%3D` resulted in a `503 Service Unavailable` response: RequestThro (truncated...)

参照サイト