Я разместил это на форуме рекламы продуктов Amazon, но никто не отвечает, поэтому, возможно, кто-то здесь может мне помочь.
Я пытаюсь показать несколько элементов на основе ключевого слова, покаУ меня есть этот код, и когда он запускается, он говорит, что запрос действителен , но элементы не возвращаются, я пытаюсь использовать PHP SoapClient.Может кто-нибудь указать, что я делаю неправильно?
Вот мой код:
<?php
define("ACCESS_KEY",'###');
define("SECRET_KEY",'###');
define("ASSOCIATE_TAG",'###');
$timeStamp = gmdate("Y-m-d\TH:i:s\Z");
$function = "ItemSearch";
$string = $function.$timeStamp;
$signature = base64_encode(hash_hmac("sha256", $string, SECRET_KEY, True));
$client = new SoapClient('http://webservices.amazon.com/AWSECommerceService/AWSECommerceService.wsdl');
//var_dump($client->__getFunctions());
$params = array(
"Operation"=>$function,
"AssociateTag"=>ASSOCIATE_TAG,
"Request"=>array("Keywords"=>"book","ResponseGroup"=>"Medium")
);
$header_arr = array();
$header_arr[] = new SoapHeader( 'http://security.amazonaws.com/doc/2007-01-01/', 'AWSAccessKeyId', ACCESS_KEY );
$header_arr[] = new SoapHeader( 'http://security.amazonaws.com/doc/2007-01-01/', 'Timestamp', $timeStamp );
$header_arr[] = new SoapHeader( 'http://security.amazonaws.com/doc/2007-01-01/', 'Signature', $signature );
$client->__setSoapHeaders($header_arr);
$result=$client->__soapCall($function, array($params));
var_dump($result);
?>
А вот ответ, который я получаю по ключевому слову book :
object(stdClass)#5 (2) {
["OperationRequest"]=>
object(stdClass)#6 (4) {
["HTTPHeaders"]=>
object(stdClass)#7 (1) {
["Header"]=>
object(stdClass)#8 (2) {
["Name"]=>
string(9) "UserAgent"
["Value"]=>
string(26) "PHP-SOAP/5.3.6-13ubuntu3.3"
}
}
["RequestId"]=>
string(36) "###"
["Arguments"]=>
object(stdClass)#9 (1) {
["Argument"]=>
object(stdClass)#10 (2) {
["Name"]=>
string(7) "Service"
["Value"]=>
string(19) "AWSECommerceService"
}
}
["RequestProcessingTime"]=>
float(0.085933)
}
["Items"]=>
object(stdClass)#11 (1) {
["Request"]=>
object(stdClass)#12 (2) {
["IsValid"]=>
string(4) "True"
["ItemSearchRequest"]=>
object(stdClass)#13 (2) {
["Keywords"]=>
string(4) "book"
["ResponseGroup"]=>
string(6) "Medium"
}
}
}
}
Как видите, в ответе нет реальных пунктов.Из документации видно, что в ответе должен быть какой-то атрибут TotalResults, поэтому я совершенно сбит с толку, почему я получаю что-то совершенно другое.