Zend_Service_Amazon
is een eenvoudige API om Amazon webservices te gebruiken.
Zend_Service_Amazon
heeft twee APIs: een meer traditionele die Amazons eigen API volgt,
en een eenvoudigere "Query API" om nog meer complexe zoekqueries gemakkelijk op te bouwen.
Zend_Service_Amazon
staat ontwikkelaars toe om informatie die door Amazon.com web sites worden verstrekt
direct op te vragen via de Amazon Web Services API. Voorbeelden:
Om Zend_Service_Amazon
te gebruiken dien je een Amazon developer API key moeten hebben. Om die
te verkrijgen, en voor meer informatie, kan je terecht op de
Amazon Web Services website.
Opmerking | |
---|---|
Je Amazon developer API key is aan je Amazon identiteit verbonden, neem dus de nodige maatregelen om je key te beveiligen en privé te houden. |
Voorbeeld 13.2. Amazon doorzoeken met de traditionele API
In dit voorbeeld zoeken we naar PHP boeken op Amazon en doorlopen we de resultaten door ze uit te printen.
<?php require_once 'Zend/Service/Amazon.php'; $amazon = new Zend_Service_Amazon('AMAZON_API_KEY&'); $response = $amazon->itemSearch(array('SearchIndex' => 'Books', 'Keywords' => 'php')); foreach ($response as $r) { echo $r->Title .'<br />'; } ?>
Voorbeeld 13.3. Amazon doorzoeken met de Query API
Hier zoeken we ook naar PHP boeken op Amazon, maar we gebruiken de Query API, die lijkt op het Fluent Interface ontwerp patroon.
<?php require_once 'Zend/Service/Amazon/Query.php'; $query = new Zend_Service_Amazon_Query('AMAZON_API_KEY'); $query->category('Books')->Keywords('PHP'); $results = $query->search(); foreach ($results as $result) { echo $result->Title .'<br />'; } ?>
Standaard maakt Zend_Service_Amazon
een verbinding met de Amazon web service in de Verenigde Staten ("US
").
Om verbinding te maken met een ander land geef je eenvoudigweg de landcode van dit land op als de tweede parameter van de
constructor:
De itemLookup()
methode biedt de mogelijkheid om een specifiek Amazon item op te halen als
de ASIN bekend is.
Voorbeeld 13.5. Een specifiek Amazon item ophalen per ASIN
<?php require_once 'Zend/Service/Amazon.php'; $amazon = new Zend_Service_Amazon('AMAZON_API_KEY'); $item = $amazon->itemLookup('B0000A432X'); ?>
De itemLookup()
methode aanvaardt ook een optionele tweede parameter om zoekopties af te handelen.
Voor alle details, inclusief een lijst van beschikbare opties, zie de
relevante Amazon documentatie.
Het zoeken naar items gebaseerd op een van de verschillende voorhande criteria wordt eenvoudig
gemaakt door de itemSearch()
methode, zoals in het volgende voorbeeld:
Voorbeeld 13.6. Uitvoeren van Amazon Item Zoekopdrachten
<?php require_once 'Zend/Service/Amazon.php'; $amazon = new Zend_Service_Amazon('AMAZON_API_KEY'); $response = $amazon->itemSearch(array('SearchIndex' => 'Books', 'Keywords' => 'php')); foreach($response as $r) { echo $r->Title .'<br />'; } ?>
De itemSearch()
methode aanvaardt een enkele array array parameter om zoekopties af te handelen.
Voor alle details, inclusief een lijst van beschikbare opties, zie de
relevante Amazon documentatie
Tip | |
---|---|
De Zend_Service_Amazon_Query klasse
is een gemakkelijk te gebruiken "wrapper" van deze methode.
|
Zend_Service_Amazon_Query
bied een alternatieve API om de Amazon Web Service te gebruiken.
De alternatieve API gebruikt het Fluent Interface ontwerppatroon. Dus, alle oproepen kunnen gemaakt worden
door aaneengeregen methode-oproepen te maken.
(bv: $obj->method()->method2($arg)
)
De Zend_Service_Amazon_Query
API gebruikt overloading om gemakkelijk een item zoekopdracht op te zetten
en laat je dan toe te zoeken op de gespecifieerde criteria. Elk van de opties is als een methode-oproep
aangeboden, en elk argument van een methode komt overeen met de benoemde waarde van de optie:
Voorbeeld 13.7. Doorzoek Amazon met gebruik van de Alternatieve Query API
In dit voorbeeld wordt de alternatieve query API gebruikt als een Fluent Interface om opties en hun respectievelijke waarden te specificeren:
<?php require_once 'Zend/Service/Amazon/Query.php'; $query = new Zend_Service_Amazon_Query('MY_API_KEY'); $query->Category('Books')->Keywords('PHP'); $results = $query->search(); foreach ($results as $result) { echo $result->Title .'<br />'; } ?>
Dit zet de optie Category
tot "Books" en Keywords
tot "PHP".
Voor meer informatie over de beschikbare opties verwijzen we je graag door naar de relevante Amazon documentatie.
De volgende klassen worden allemaal teruggegeven door
Zend_Service_Amazon::itemLookup()
en
Zend_Service_Amazon::itemSearch()
:
Zend_Service_Amazon_Item
is de typeklasse die gebruikt wordt om een Amazon item voor te stellen dat
werd teruggestuurd door de web service. Het omvat alle item eigenschappen, inclusief de titel, beschrijving, recensies enz...
string asXML();
Geeft de oorspronkelijke XML van het item terug
Zend_Service_Amazon_Item
heeft een aantal eigenschappen die onmiddellijk verwant zijn aan hun
Amazon API tegenhangers.
Tabel 13.1. Zend_Service_Amazon_Item Eigenschappen
Naam | Type | Beschrijving |
---|---|---|
ASIN | string | Amazon Item ID |
DetailPageURL | string | URL naar de pagina met de details voor het item |
SalesRank | string | Verkoopsrang van het item |
SmallImage | Zend_Service_Amazon_Image | Klein beeld van het item |
MediumImage | Zend_Service_Amazon_Image | Medium beeld van het item |
LargeImage | Zend_Service_Amazon_Image | Groot beeld van het item |
Subjects | array | Item onderwerpen |
Offers |
Zend_Service_Amazon_OfferSet
|
Samenvatting van en aanbiedingen voor het item |
CustomerReviews | array |
Klantrecensies voorgesteld als een array van
Zend_Service_Amazon_CustomerReview
objecten
|
EditorialReviews | array |
Uitgeversrecensies voorgesteld als een array van
Zend_Service_Amazon_EditorialReview
objecten
|
SimilarProducts | array |
Gelijksoortige producten voorgesteld als een array van
Zend_Service_Amazon_SimilarProduct
objecten
|
Accessories | array |
Accessoires voor het item voorgesteld als een array van
Zend_Service_Amazon_Accessories
objecten
|
Tracks | array | Een array van liedjes, nummers en namen voor muziek CDs en DVDs |
ListmaniaLists | array |
ListMania lijsten verwant met het item als een array van
Zend_Service_Amazon_ListmainList
objecten
|
PromotionalTag | string | Item promotievlag |
Zend_Service_Amazon_Image
vetegenwoordigt een (remote) beeld voor een product.
Zend_Service_Amazon_ResultSet
objecten worden teruggestuurd door
Zend_Service_Amazon::itemSearch()
en laten je toe gemakkelijk meervoudige resultaten verwerken.
Opmerking | |
---|---|
Implementeert de |
int totalResults();
Geeft het totaal aantal resultaten verkregen door de zoekopdracht
Elk resultaat teruggegeven door
Zend_Service_Amazon::itemSearch()
en
Zend_Service_Amazon::itemLookup()
bevat een
Zend_Service_Amazon_OfferSet
object via welke prijsinformatie voor het item kan worden opgevraagd.
Tabel 13.3. Zend_Service_Amazon_OfferSet Eigenschappen
Naam | Type | Beschrijving |
---|---|---|
LowestNewPrice | int | Laagste prijs voor het item in "Nieuw" conditie |
LowestNewPriceCurrency | string |
De munteenheid voor LowestNewPrice
|
LowestOldPrice | int | Laagste prijs voor het item in "Gebruikt" conditie |
LowestOldPriceCurrency | string |
De munteenheid voor LowestOldPrice
|
TotalNew | int | Totaal aantal beschikbare items in "nieuw" conditie |
TotalUsed | int | Totaal aantal beschikbare items in "gebruikt" conditie |
TotalCollectible | int | Totaal aantal beschikbare items in "verzamelaars" conditie |
TotalRefurbished | int | Totaal aantal beschikbare items in "gerenoveerd" conditie |
Offers | array |
Een array van Zend_Service_Amazon_Offer objecten.
|
Elke aanbieding voor een item is een
Zend_Service_Amazon_Offer
object.
Tabel 13.4. Zend_Service_Amazon_Offer Eigenschappen
Naam | Type | Beschrijving |
---|---|---|
MerchantId | string | Handelaars Amazon ID |
GlancePage | string | URL voor een pagina met een samenvatting van de handelaar |
Condition | string | conditie van het item |
OfferListingId | string | ID van de aanbiedingslijst |
Price | int | Prijs van het item |
CurrencyCode | string | Munteenheid voor de prijs van het item |
Availability | string | Beschikbaarheid van het item |
IsEligibleForSuperSaverShipping | boolean | Of het item in aanmerking komt voor Super Saver Shipping of niet |
Wanneer je naar items zoekt geeft Amazon ook een lijst van gelijksoortige producten terug die de
zoekende persoon zouden kunnen interesseren. Elk van deze items is een
Zend_Service_Amazon_SimilarProduct
object.
Elk object bevat de informatie die je toelaat opeenvolgende verzoeken te maken om de volledige informatie van het item te verkrijgen.
Accessoires voor het teruggegeven item worden vertegenwoordigd door
Zend_Service_Amazon_Accessories
objecten
Elke klantrecensie wordt teruggegeven als een Zend_Service_Amazon_CustomerReview
object.
Tabel 13.7. Zend_Service_Amazon_CustomerReview Eigenschappen
Naam | Type | Beschrijving |
---|---|---|
Rating | string | Item classificatie |
HelpfulVotes | string | Stemmen over hoe helpvol de recensie is |
CustomerId | string | Klant ID |
TotalVotes | string | Totaal aantal stemmen |
Date | string | Datum van de recensie |
Summary | string | Recensie samenvatting |
Content | string | Recensie inhoud |
Elke uitgeversrecensie van een item is een Zend_Service_Amazon_EditorialReview
object
Elke ListMania resultaatlijst is een Zend_Service_Amazon_Listmania
object.