Как сделать ItemLookup с Zend Service Amazon?

Я был бы признателен, если бы кто-нибудь помог мне правильно выполнить поиск предметов по ISBN с использованием модуля Zend Amazon Service (с Zend 2.0).

Вот моя попытка:

    $query  = new ZendService\Amazon\Query($appId, 'UK', $secretKey);
    $query->Category('Books')->IdType('ISBN')->ItemID('978-0321784070')->AssociateTag($tag);
    $result = $query->ItemLookup();

Но я получаю следующие ошибки:

  • Отсутствует аргумент 1 для ZendService\Amazon\Amazon::itemLookup(), вызываемый в D:\wamp\www\site\controllers\dev.php в строке 122 и определяемый
  • Неопределенная переменная: asin

Я никак не могу определить ASIN, потому что единственная информация, которую я буду иметь, — это ISBN.

Я уже ознакомился с руководством пользователя Zend Service Amazon на веб-сайте zend framework, но оно устарело и не демонстрирует, как выполнять поиск ISBN. Я также просмотрел демонстрацию, поставляемую с пакетом zend amazon, но в ней подробно описывается только то, как выполнять поиск предметов, а не поиск.


person emkay    schedule 19.10.2012    source источник


Ответы (1)


Вот способ заставить поиск ISBN работать, мне потребовалось некоторое время, чтобы понять это. Проблема заключалась в том, что для поиска ISBN необходимо использовать метод ItemLookup, а не метод ItemSearch, который задавался методом query().

Может быть лучший способ заставить это работать, используя интерфейс OO, но я еще не пробовал.

$query  = new ZendService\Amazon\Query($appId, 'US', $secretKey);
$item   = $query->itemLookup('9780321784070',
                             array('SearchIndex'   => 'Books',
                                   'AssociateTag'  => $tag,
                                   'IdType'        => 'ISBN',
                                   'ResponseGroup' => 'Small',));

Поиск по ISBN должен возвращать один объект ZendService\Amazon\Item, а не массив результатов. Также имейте в виду, что если вы ищете по ISBN-13, вам нужно удалить - из номера, иначе он не найдет соответствия.

Кредит этому сообщение в блоге от Manas Tungare, которое намекнуло мне, что нам нужно использовать IteamLookup вместо ItemSearch.

person drew010    schedule 19.10.2012