tims / amazon-creatorsapi-php-sdk
Amazon Creators API official PHP SDK, packaged for Composer
Package info
github.com/timslabs/amazon-creatorsapi-php-sdk
pkg:composer/tims/amazon-creatorsapi-php-sdk
Requires
- php: ^8.1
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.3
- guzzlehttp/psr7: ^1.7 || ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.5
- phpunit/phpunit: ^8.0 || ^9.0
README
Composer-ready packaging of Amazon's official Creators API PHP SDK.
Amazon distributes the SDK as a zip download from Associates Central and does not publish it to Packagist. This repository packages that SDK so it can be installed with Composer under tims/amazon-creatorsapi-php-sdk.
The PHP namespace remains Amazon's upstream Amazon\CreatorsAPI\v1\.
Requirements
- PHP 8.1+
- Guzzle 7.3+
- Amazon Associates Creators API credentials (Credential ID, Credential Secret, Version)
Install
composer require tims/amazon-creatorsapi-php-sdk
Quick start
<?php use Amazon\CreatorsAPI\v1\Configuration; use Amazon\CreatorsAPI\v1\com\amazon\creators\api\DefaultApi; use Amazon\CreatorsAPI\v1\com\amazon\creators\model\GetItemsRequestContent; use Amazon\CreatorsAPI\v1\com\amazon\creators\model\GetItemsResource; $config = new Configuration(); $config->setCredentialId('<YOUR CREDENTIAL ID>'); $config->setCredentialSecret('<YOUR CREDENTIAL SECRET>'); $config->setVersion('<YOUR CREDENTIAL VERSION>'); $api = new DefaultApi(null, $config); $request = new GetItemsRequestContent(); $request->setPartnerTag('<YOUR PARTNER TAG>'); $request->setItemIds(['B0XXXX']); $request->setResources([ GetItemsResource::ITEM_INFO_TITLE, GetItemsResource::IMAGES_PRIMARY_MEDIUM, ]); $response = $api->getItems('www.amazon.com', $request);
Samples
After composer install, run examples from examples/:
cd examples
php SampleGetItems.php
php SampleSearchItems.php
Replace placeholders in the sample files first:
<YOUR CREDENTIAL ID><YOUR CREDENTIAL SECRET><YOUR CREDENTIAL VERSION>(e.g.2.1/3.1for NA)<YOUR MARKETPLACE>(e.g.www.amazon.com)<YOUR PARTNER TAG>
Documentation
Extending the token manager
DefaultApi creates an in-memory OAuth2TokenManager by default. Subclasses can override createTokenManager() to plug in persistent caching (for example Laravel Cache) without forking the rest of the SDK:
class CachedDefaultApi extends DefaultApi { protected function createTokenManager(OAuth2Config $oauthConfig): OAuth2TokenManager { return new MyCachedTokenManager($oauthConfig); } }
getOrCreateTokenManager() and buildAuthenticatedHeaders() are protected so subclasses can extend auth behavior when needed.
Laravel
For Laravel integration, see tims/laravel-paapi.
License
Apache License 2.0 — see LICENSE.txt and NOTICE.txt (Amazon Creators API SDK).