如何使用Zend Service Amazon进行ItemLookup?

时间:2012-10-19 09:30:39

标签: php api codeigniter amazon zend-framework2

如果有人能够使用Zend Amazon Service模块(使用Zend 2.0)通过ISBN进行ItemLookup的正确方式,我将不胜感激。

这是我的尝试:

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

但我收到以下错误:

  • 缺少ZendService \ Amazon \ Amazon :: itemLookup()的参数1,在第122行的D:\ wamp \ www \ site \ controllers \ dev.php中调用并定义
  • 未定义的变量:asin

我无法定义ASIN,因为我将拥有的唯一信息是ISBN。

我已经在zend框架网站上查阅了Zend Service亚马逊用户指南,但它已经过时,并没有演示如何进行ISBN查找。我还查看了zend amazon软件包附带的演示,但只详细说明了如何进行项目搜索,而不是查找。

1 个答案:

答案 0 :(得分:3)

这是一种让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相信这个blog post,暗示我们需要使用IteamLookup而不是ItemSearch。