首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何更改此Amazon Product Advertising API PHP连接以搜索ISBN

如何更改此Amazon Product Advertising API PHP连接以搜索ISBN
EN

Stack Overflow用户
提问于 2016-01-12 23:35:44
回答 1查看 207关注 0票数 1

我正在使用PHP类与Amazon Product advertising进行交互。我需要能够查找书籍(ISBN编号),但是这个类似乎不支持它。我试图修改关键字函数以接受ISBN编号,但我没有运气。有没有人能给我指出正确的资源方向,以学习如何做到这一点,或者如果这是一个简单的修复程序,向我展示它?提前谢谢你

代码语言:javascript
运行
AI代码解释
复制
amazon_api_class.php

<?php  
    require_once 'aws_signed_request.php';

    class AmazonProductAPI
    {

        private $public_key     = "YOUR AMAZON ACCESS KEY ID";
        private $private_key    = "YOUR AMAZON SECRET KEY";

        /* 'Associate Tag' now required, effective from 25th Oct. 2011 */
        private $associate_tag  = "YOUR AMAZON ASSOCIATE TAG";

        const MUSIC = "Music";
        const DVD   = "DVD";
        const GAMES = "VideoGames";

        private function verifyXmlResponse($response)
        {
            if ($response === False)
            {
                throw new Exception("Could not connect to Amazon");
            }
            else
            {
                if (isset($response->Items->Item->ItemAttributes->Title))
                {
                    return ($response);
                }
                else
                {
                    throw new Exception("Invalid xml response.");
                }
            }
        }

        private function queryAmazon($parameters)
        {
            return aws_signed_request("com",
                                      $parameters,
                                      $this->public_key,
                                      $this->private_key,
                                      $this->associate_tag);
        }

        public function searchProducts($search,$category,$searchType="UPC")
        {
            $allowedTypes = array("UPC", "TITLE", "ARTIST", "KEYWORD");
            $allowedCategories = array("Music", "DVD", "VideoGames");

            switch($searchType) 
            {
                case "UPC" :
                    $parameters = array("Operation"     => "ItemLookup",
                                        "ItemId"        => $search,
                                        "SearchIndex"   => $category,
                                        "IdType"        => "UPC",
                                        "ResponseGroup" => "Medium");
                                break;

                case "TITLE" :
                    $parameters = array("Operation"     => "ItemSearch",
                                        "Title"         => $search,
                                        "SearchIndex"   => $category,
                                        "ResponseGroup" => "Medium");
                                break;

            }

            $xml_response = $this->queryAmazon($parameters);

            return $this->verifyXmlResponse($xml_response);

        }

        public function getItemByUpc($upc_code, $product_type)
        {
            $parameters = array("Operation"     => "ItemLookup",
                                "ItemId"        => $upc_code,
                                "SearchIndex"   => $product_type,
                                "IdType"        => "UPC",
                                "ResponseGroup" => "Medium");

            $xml_response = $this->queryAmazon($parameters);

            return $this->verifyXmlResponse($xml_response);

        }

        public function getItemByAsin($asin_code)
        {
            $parameters = array("Operation"     => "ItemLookup",
                                "ItemId"        => $asin_code,
                                "ResponseGroup" => "Medium");

            $xml_response = $this->queryAmazon($parameters);

            return $this->verifyXmlResponse($xml_response);
        }

        public function getItemByKeyword($keyword, $product_type)
        {
            $parameters = array("Operation"   => "ItemSearch",
                                "Keywords"    => $keyword,
                                "SearchIndex" => $product_type);

            $xml_response = $this->queryAmazon($parameters);

            return $this->verifyXmlResponse($xml_response);
        }

    }

    ?>
EN

回答 1

Stack Overflow用户

发布于 2016-01-28 23:09:06

Lookup by ISBN要求将IdType参数设置为ISBN。扩展您的代码可能如下所示:

代码语言:javascript
运行
AI代码解释
复制
  public function getItemByISBN($isbn)
    {
        $parameters = array("Operation"     => "ItemLookup",
                            "ItemId"        => $isbn,
                            "IdType"        => "ISBN"
                            "ResponseGroup" => "Medium");

        $xml_response = $this->queryAmazon($parameters);

        return $this->verifyXmlResponse($xml_response);
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34755816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档