Amazon Product API를 사용하여 제품 조회 및 검색을 수행하는 PHP 라이브러리.
이 라이브러리에는 SimpleXML 및 Curl 확장이 설치되어야하며 PHP 7+를 사용합니다. Composer를 사용하여 설치가 간단합니다.
composer require marcl/amazonproductapi또한 Amazon 제품 API에 대한 기본 지식이 있으며 Amazon Associate 계정을 설정했다고 가정합니다. Amazon Product API 설정.
AWS 키, Secret Key 및 Associate 태그가 필요합니다. 이 안전을 유지하십시오!
examples.php 에 몇 가지 간단한 예제를 추가했습니다. 실행하려면 secretKeys.php 라는 파일을 작성하십시오. 비밀 키가 포함되어 있습니다.
<?php
$ keyId = ' YOUR-AWS-KEY ' ;
$ secretKey = ' YOUR-AWS-SECRET-KEY ' ;
$ associateId = ' YOUR-AMAZON-ASSOCIATE-ID ' ;
?>그런 다음 예제를 실행합니다.
php examples.phpComposer Autoloader를 사용하여 코드에 라이브러리를 포함시키고 자격 증명으로 AmazonUrlBuilder를 만듭니다.
require ( ' vendor/autoload.php ' );
use MarcL AmazonAPI ;
use MarcL AmazonUrlBuilder ;
// Keep these safe
$ keyId = ' YOUR-AWS-KEY ' ;
$ secretKey = ' YOUR-AWS-SECRET-KEY ' ;
$ associateId = ' YOUR-AMAZON-ASSOCIATE-ID ' ;
// Setup a new instance of the AmazonUrlBuilder with your keys
$ urlBuilder = new AmazonUrlBuilder (
$ keyId ,
$ secretKey ,
$ associateId ,
' uk '
);
// Setup a new instance of the AmazonAPI and define the type of response
$ amazonAPI = new AmazonAPI ( $ urlBuilder , ' simple ' );
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' , ' Books ' , ' price ' );참고 : 아마존 키를 안전하게 유지하십시오. 환경 변수를 사용하거나 GitHub에 체크하지 않은 파일에 포함하십시오.
이 라이브러리는 모든 제품 광고 API 로케일을 지원하며 키로 AmazonUrlBuilder 클래스를 구성 할 때 설정할 수 있습니다.
현재 이들은 현재 지원되는 지역입니다.
항목을 검색하려면 ItemSearch() 메소드를 사용하십시오.
// Search for harry potter items in all categories
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' );
// Search for harry potter items in Books category only
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' , ' Books ' ); 기본적으로 ItemSearch() 메소드는 특집별로 검색됩니다. 다른 범주별로 정렬하려면 정렬하려는 범주의 이름으로 세 번째 매개 변수를 전달하십시오. 이것들은 카테고리 유형별로 다르지만, 아마도 필요한 두 가지는 price (가격으로 낮은 가격에서 높은 가격으로 정렬) 또는 -price (가격으로 높은 가격으로 낮은 가격으로)입니다. 자세한 내용은 항목 검색 정렬 값을 참조하십시오.
// Search for harry potter items in Books category, sort by low to high
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' , ' Books ' , ' price ' );
// Search for harry potter items in Books category, sort by high to low
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' , ' Books ' , ' -price ' ); 검색에 대한 유효한 범주를 결정하려면 GetValidSearchNames() :
// Get an array of valid search categories we can use
$ searchCategories = $ amazonAPI -> GetValidSearchNames (); 제품 ASIN 번호를 사용하여 제품을 찾으려면 ItemLookup() :
// Retrieve specific item by id
$ items = $ amazonAPI -> ItemLookUp ( ' B003U6I396 ' );
// Retrieve a list of items by ids
$ asinIds = array ( ' B003U6I396 ' , ' B003U6I397 ' , ' B003U6I398 ' );
$ items = $ amazonAPI -> ItemLookUp ( $ asinIds );기본적으로 데이터는 SimpleXML 노드로 반환됩니다. 그러나 API의 사용 사례에 따라 데이터를 다르게 변환하도록 요청할 수 있습니다. 다음과 같이 Amazonapi 클래스를 인스턴스화 할 때 유형을 전달하십시오.
// Default return type is XML
$ amazonAPI = new AmazonAPI ( $ amazonUrlBuilder );
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' );
var_dump ( $ items );이것은 출력됩니다 :
class SimpleXMLElement#2 (2) {
public $OperationRequest = >
class SimpleXMLElement#3 (3) {
public $RequestId = >
string(36) " de58449e-0c1a-47ac-9823-00fd049c52df "
public $Arguments = >
class SimpleXMLElement#5 (1) {
public $Argument = >
array(11) {
... // Return simplified data
$ amazonAPI = new AmazonAPI ( $ amazonUrlBuilder , ' simple ' );
$ items = $ amazonAPI -> ItemSearch ( ' harry potter ' );
var_dump ( $ items );이렇게하면 데이터가 최소화되지만 간단한 사용 사례에 충분한 간단한 버전을 반환합니다.
array(10) {
[0] =>
array(8) {
'asin' =>
string(10) "B00543R3WG"
'url' =>
string(212) "http://www.amazon.co.uk/Harry-Potter-Complete-8-Film-Collection/dp/B00543R3WG%3FSubscriptionId%3D1BM0B8TXM1YSZ1M0XDR2%26tag%3Ddjcr-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB00543R3WG"
'rrp' =>
double(44.99)
'title' =>
string(58) "Harry Potter - The Complete 8-Film Collection [DVD] [2011]"
'lowestPrice' =>
double(23.4)
'largeImage' =>
string(53) "http://ecx.images-amazon.com/images/I/51qa9nTUsEL.jpg"
'mediumImage' =>
string(61) "http://ecx.images-amazon.com/images/I/51qa9nTUsEL._SL160_.jpg"
'smallImage' =>
string(60) "http://ecx.images-amazon.com/images/I/51qa9nTUsEL._SL75_.jpg"
}
[1] =>
array(8) {
'asin' =>
string(10) "0747558191"
'url' =>
string(212) "http://www.amazon.co.uk/Harry-Potter-Philosophers-Stone-Rowling/dp/0747558191%3FSubscriptionId%3D1BM0B8TXM1YSZ1M0XDR2%26tag%3Ddjcr-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0747558191"
'rrp' =>
double(6.99)
'title' =>
string(40) "Harry Potter and the Philosopher's Stone"
…
다른 데이터 변환 유형은 다음과 같이 정의됩니다. 데이터를 새로운 유형으로 변환하려면 문제를 제기하십시오.
이 라이브러리는 David Drake의 PHP 용 AWS API 인증을 기반으로 코드를 사용하지만 대부분 다시 작성되었습니다.
라이센스를 참조하십시오