Zend_Service_Amazon jest prostym API do użycia z web serwisami
Amazon. Zend_Service_Amazon ma dwa API: bardziej tradycyjne,
które jest oparte na własnym API serwisu Amazon, oraz prostsze API zapytań do
łatwego tworzenia nawet skomplikowanych zapytań wyszukiwania.
Zend_Service_Amazon pozwala programistom odbierać
informacje dostępne na stronach Amazon.com bezpośrednio za pomocą
API web serwisów Amazon. Przykłady zawierają:
Informacje o przedmiotach, takie jak obrazki, opisy, cenniki i inne
Recenzje klientów i redaktorów
Podobne produkty i akcesoria
Oferty Amazon.com
Listy ListMania
Aby użyć Zend_Service_Amazon, musisz posiadać klucz API programisty
Amazon. Aby otrzymać klucz i zdobyć więcej informacji odwiedź stronę
Amazon Web Services.
![]() |
Uwaga |
|---|---|
Twój klucz do API serwisu Amazon jest połączony z twoją tożsamością w Amazon, więc staraj się przechowywać twój klucz API bezpiecznie. |
Przykład 29.4. Przeszukiwanie Amazon używając tradycyjnego API
W tym przykładzie, szukamy książek o PHP w Amazon i przechodzimy przez nie w pętli, wyświetlając je.
<?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 />';
}
?>
Przykład 29.5. Przeszukiwanie Amazon używając API zapytań
Tutaj także szukamy książek o PHP w Amazon, ale zamiast tradycyjnego API używamy API zapytań, które jest stworzone w oparciu o projektowy wzorzec płynnych interfejsów.
<?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 />';
}
?>
Domyślnie, Zend_Service_Amazon łączy się z web serwisem
Amazon w Stanach Zjednoczonych ("US"). Aby połączyć się
z innym krajem, w prosty sposób podaj kod odpowiedniego państwa jako
drugi parametr konstruktora:
Przykład 29.6. Wybierania państwa web serwisu Amazon
<?php
// Łączenie się z Amazon w Japonii
require_once 'Zend/Service/Amazon.php';
$amazon = new Zend_Service_Amazon('AMAZON_API_KEY', 'JP');
?>
![]() |
Kody państw |
|---|---|
Poprawne kody państw: |
Metoda itemLookup() zapewnia możliwość pobrania informacji
o konkretnym przedmiocie, którego ASIN jest znany.
Przykład 29.7. Szukanie specyficznego przedmiotu w Amazon na podstawie ASIN
<?php
require_once 'Zend/Service/Amazon.php';
$amazon = new Zend_Service_Amazon('AMAZON_API_KEY');
$item = $amazon->itemLookup('B0000A432X');
?>
Metoda itemLookup() także akceptuje opcjonalny drugi parametr
do obsługi opcji wyszukiwania. Aby poznać pełne informacje, włączając
w to listę dostępnych opcji odwiedź
dokumentację Amazon.
![]() |
Informacje o zdjęciach |
|---|---|
Aby odebrać informacje o zdjęciach dla twoich wyników wyszukiwania, musisz ustawić
opcję |
Wyszukiwanie przedmiotów oparte na różnych dostępnych kryteriach
jest przeprowadzane za pomocą metody itemSearch(), tak
jak w poniższym przykładzie:
Przykład 29.8. Wykonywanie wyszukiwań przedmiotów Amazon
<?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 />';
}
?>
Metoda itemSearch() akceptuje jeden parametr w postaci
tablicy do obsługi opcji wyszukiwania. Aby poznać wszystkie
szczegóły włączając w to listę dostępnych opcji, proszę zobacz
dokumentację Amazon
![]() |
Podpowiedź |
|---|---|
Klasa |
Zend_Service_Amazon_Query zapewnia alternatywne API
do użycia z web serwisami Amazon. Alternatywne API używa wzorca
projektowego płynnych interfejsów. Oznacza to, że wszystkie
wywołania mogą być przeprowadzone przez łańcuchowe wywołania
metod. (np. $obj->method()->method2($arg))
API Zend_Service_Amazon_Query używa przeładowania
w celu łatwego ustawiania wyszukiwania przedmiotów i pozwala na
wyszukiwanie na podstawie określonych kryteriów. Każda z opcji
jest udostępniana jako wywołanie metody, a każdy argument metody
odpowiada wartości opcji o tej nazwie:
Przykład 29.9. Przeszukiwanie serwisu Amazon używając alternatywnego API zapytań
W tym przykładzie alternatywne API zapytań używane jest jako płynny interfejs służący do określania opcji i odpowiadającym im wartościom:
<?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 />';
}
?>
To ustawia opcję Category na "Books" oraz Keywords na "PHP".
Aby uzyskać więcej informacji o dostępnych opcjach, proszę odwiedź dokumentację Amazon.
Poniższe klasy są zwracane przez metody
Zend_Service_Amazon::itemLookup()
oraz
Zend_Service_Amazon::itemSearch():
Zend_Service_Amazon_Item jest typem klasy używanej
dp reprezentowania przedmiotu Amazon zwracanego przez web serwis.
Zawiera ona wszystkie atrybuty przedmiotu, włączając w to tytuł,
opis, recenzje itd.
string asXML();
Zwraca oryginalną treść XML dla przedmiotu
Zend_Service_Amazon_Item posiada właściwości
bezpośrednio związane ze standardowymi częściami Amazon API.
Tabela 29.1. Właściwości Zend_Service_Amazon_Item
| Nazwa | Typ | Opis |
|---|---|---|
| ASIN | string | ID przedmiotu w Amazon |
| DetailPageURL | string | Adres URL strony ze szczegółowymi informacjami o przedmiocie |
| SalesRank | string | Ranking sprzedaży dla przedmiotu |
| SmallImage | Zend_Service_Amazon_Image | Małe zdjęcie przedmiotu |
| MediumImage | Zend_Service_Amazon_Image | Średnie zdjęcie przedmiotu |
| LargeImage | Zend_Service_Amazon_Image | Duże zdjęcie przedmiotu |
| Subjects | array | Tematy przedmiotów |
| Offers |
Zend_Service_Amazon_OfferSet
|
Podsumowanie ofert oraz oferty dla przedmiotu |
| CustomerReviews | array |
Recenzje klientów reprezentowane jako tablica obiektów
Zend_Service_Amazon_CustomerReview
|
| EditorialReviews | array |
Recenzje redaktorów reprezentowane jako tablica obiektów
Zend_Service_Amazon_EditorialReview
|
| SimilarProducts | array |
Podobne produkty reprezentowane jako tablica obiektów
Zend_Service_Amazon_SimilarProduct
|
| Accessories | array |
Akcesoria dla przedmiotu reprezentowane jako tablica obiektów
Zend_Service_Amazon_Accessories
|
| Tracks | array | Tablica numerów i nazw utworów dla muzycznych płyt CD oraz DVD |
| ListmaniaLists | array |
Listy Listmania powiązane z przedmiotem jako tablica obiektó∑
Zend_Service_Amazon_ListmainList
|
| PromotionalTag | string | Etykieta promocyjna przedmiotu |
Zend_Service_Amazon_Image reprezentuje zdalny obraz dla produktu.
Obiekty Zend_Service_Amazon_ResultSet są zwracane przez metodę
Zend_Service_Amazon::itemSearch()
i pozwalają ci na łatwą obsługę wielu zwróconych wyników wyszukiwania.
![]() |
SeekableIterator |
|---|---|
Implementuje interfejs |
int totalResults();Zwraca całkowitą ilość wyników zwróconych przez wyszukiwanie
Każdy wynik zwracany przez metody
Zend_Service_Amazon::itemSearch()
oraz
Zend_Service_Amazon::itemLookup()
zawiera obiekt
Zend_Service_Amazon_OfferSet poprzez który dostępne są
informacje o cenach dla przedmiotu.
Tabela 29.3. Właściwości Zend_Service_Amazon_OfferSet
| Nazwa | Typ | Opis |
|---|---|---|
| LowestNewPrice | int | Najniższa cena dla nowego przedmiotu (stan "New") |
| LowestNewPriceCurrency | string |
Waluta dla LowestNewPrice
|
| LowestOldPrice | int | Najniższa cena dla używanego przedmiotu (stan "Used") |
| LowestOldPriceCurrency | string |
Waluta dla LowestOldPrice
|
| TotalNew | int | Całkowita ilość przedmiotów o stanie "new" |
| TotalUsed | int | Całkowita ilość przedmiotów o stanie "used" |
| TotalCollectible | int | Całkowita ilość przedmiotów o stanie "collectible" |
| TotalRefurbished | int | Całkowita ilość przedmiotów o stanie "refurbished" |
| Offers | array |
Tablica obiektów
Zend_Service_Amazon_Offer.
|
Każda oferta dla przedmiotu jest zwracana jako obiekt
Zend_Service_Amazon_Offer.
Tabela 29.4. Właściwości
| Nazwa | Typ | Opis |
|---|---|---|
| MerchantId | string | ID handlowca Amazon |
| GlancePage | string | Adres URL strony z podsumowaniem handlowca |
| Condition | string | Stan przedmiotu |
| OfferListingId | string | ID listy ofert |
| Price | int | Cena za przedmiot |
| CurrencyCode | string | Kod waluty dla ceny przedmiotu |
| Availability | string | Dostępność przedmiotu |
| IsEligibleForSuperSaverShipping | boolean | Czy przedmiot jest dostępny w Super Saver Shipping czy nie |
Kiedy wyszukujemy przedmiotów, Amazon także zwraca listę
podobnych produktów, które także mogą odpowiadać szukającemu.
Każdy z nich jest zwracany jako obiekt
Zend_Service_Amazon_SimilarProduct.
Każdy obiekt zawiera informacje pozwalające ci na przeprowadzenie kolejnego żądania w celu pobrania pełnych informacji o przedmiocie.
Akcesoria dla zwróconego przedmiotu są reprezentowane jako obiekty Zend_Service_Amazon_Accessories
Każda recenzja klienta jest zwracana jako obiekt Zend_Service_Amazon_CustomerReview.
Tabela 29.7. Właściwości Zend_Service_Amazon_CustomerReview
| Nazwa | Typ | Opis |
|---|---|---|
| Rating | string | Ocena przedmiotu |
| HelpfulVotes | string | Głosy mówiące o tym jak pomocna jest recenzja |
| CustomerId | string | ID klienta |
| TotalVotes | string | Całkowiita ilość głosów |
| Date | string | Data oceny |
| Summary | string | Podsumowanie oceny |
| Content | string | Zawartość oceny |
Każda recenzja redaktora jest zwracana jako obiekt
Zend_Service_Amazon_EditorialReview