我正在使用PHP类与Amazon Product advertising进行交互。我需要能够查找书籍(ISBN编号),但是这个类似乎不支持它。我试图修改关键字函数以接受ISBN编号,但我没有运气。有没有人能给我指出正确的资源方向,以学习如何做到这一点,或者如果这是一个简单的修复程序,向我展示它?提前谢谢你
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);
}
}
?>
发布于 2016-01-28 23:09:06
Lookup by ISBN要求将IdType参数设置为ISBN。扩展您的代码可能如下所示:
public function getItemByISBN($isbn)
{
$parameters = array("Operation" => "ItemLookup",
"ItemId" => $isbn,
"IdType" => "ISBN"
"ResponseGroup" => "Medium");
$xml_response = $this->queryAmazon($parameters);
return $this->verifyXmlResponse($xml_response);
}
https://stackoverflow.com/questions/34755816
复制