Amazon Product Advertising APIのクライアントライブラリ。
データ取得に必要なパラメータを設定することでクエリを生成してデータを取得してくれる。
GuzzleHttpも利用する。
インストール
composerからインストールできます。
HTML
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
<?php
$conf = new \ApaiIO\Configuration\GenericConfiguration();
$client = new \GuzzleHttp\Client();
$request = new \ApaiIO\Request\GuzzleRequest($client);
// 設定
$conf
->setCountry('co.jp')
->setAccessKey(\App\Amazon::ACCESS_KEY)
->setSecretKey(\App\Amazon::SECRET_ACCESSKEY)
->setAssociateTag(\App\Amazon::ASSOCIATE_TAG)
->setRequest($request);
// Amazonへリクエスト、レスポンスを取得するクライアントオブジェクト
$dao = new \ApaiIO\ApaiIO($conf);
?>
オペレーション
各オペレーションクラスは抽象クラスである\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を指定して検索
<?php
// オペレーション作成
$lookup = new \ApaiIO\Operations\Lookup();
$lookup->setItemId('4798052582');
$lookup->setResponseGroup(['Large']);
try {
$response = $dao->runOperation($lookup);
var_dump($response);
} catch (\Exception $e) {
echo '[エラー]';
echo $e->getMessage();
}
?>
って感じで実行したいんだけど、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...)