"지금 구매"링크를 얻고 게임 제품의 실제 가격이 게임 제목과 함께 나타납니다. 그 때문에 "제목으로 검색"(http://docs.aws.amazon.com/AWSECommerceService/latest/DG/EX_SearchingbyTitle.html)을 사용해야합니다.Amazon Product Advertising API : XML 요청 문제
XML 요청에 대한 예제를 발견하고이를 위해 빌드하려고합니다.
예였다 내 검색 값으로 완벽하게 작동하지만,하지
$AWSAccessKeyId = "";
$SecretAccessKey = "";
$ItemId = "0679722769"; // ASIN
$Timestamp = gmdate("Y-m-d\TH:i:s\Z");
$Timestamp = str_replace(":", "%3A", $Timestamp);
$ResponseGroup = "ItemAttributes,Offers,Images,Reviews";
$ResponseGroup = str_replace(",", "%2C", $ResponseGroup);
$String = "AWSAccessKeyId=$AWSAccessKeyId&
AssociateTag=xy&
ItemId=$ItemId&
Operation=ItemLookup&
ResponseGroup=$ResponseGroup&
Service=AWSECommerceService&
Timestamp=$Timestamp&
Version=2009-01-06";
$String = str_replace("\n", "", $String);
$Prepend = "GET\nwebservices.amazon.com\n/onca/xml\n";
$PrependString = $Prepend . $String;
$Signature = base64_encode(hash_hmac("sha256", $PrependString, $SecretAccessKey, True));
$Signature = str_replace("+", "%2B", $Signature);
$Signature = str_replace("=", "%3D", $Signature);
$BaseUrl = "http://webservices.amazon.com/onca/xml?";
$SignedRequest = $BaseUrl . $String . "&Signature=" . $Signature;
$XML = simplexml_load_file($SignedRequest);
echo '<a href="'.$SignedRequest.'">XML</a><p>';
print_r ($XML);
. params를 편집했는데 요청이 깨졌습니다.
내 요청 :
$AWSAccessKeyId = "";
$SecretAccessKey = "";
$ItemId = "Payday2"; // ASIN
$Timestamp = gmdate("Y-m-d\TH:i:s\Z");
$Timestamp = str_replace(":", "%3A", $Timestamp);
$ResponseGroup = "ItemAttributes";
$ResponseGroup = str_replace(",", "%2C", $ResponseGroup);
$String = "AWSAccessKeyId=$AWSAccessKeyId&
AssociateTag=xy&
Operation=ItemSearch&
SearchIndex=Game&
Title=$ItemId&
ResponseGroup=$ResponseGroup&
Service=AWSECommerceService&
Timestamp=$Timestamp&
Version=2009-01-06";
$String = str_replace("\n", "", $String);
$Prepend = "GET\nwebservices.amazon.com\n/onca/xml\n";
$PrependString = $Prepend . $String;
$Signature = base64_encode(hash_hmac("sha256", $PrependString, $SecretAccessKey, True));
$Signature = str_replace("+", "%2B", $Signature);
$Signature = str_replace("=", "%3D", $Signature);
$BaseUrl = "http://webservices.amazon.com/onca/xml?";
$SignedRequest = $BaseUrl . $String . "&Signature=" . $Signature;
$XML = simplexml_load_file($SignedRequest);
echo '<a href="'.$SignedRequest.'">XML</a><p>';
print_r ($XML);
내 요청이 작동하지 왜?
감사
내가 여기보고 있어요 두 가지 잠재적 인 문제가있다
SearchIndex를 편집했지만 작동하지 않습니다 : "계산 된 요청 서명이 사용자가 제공 한 서명과 일치하지 않습니다."AWS 보안 액세스 키 및 서명 방법을 확인하십시오. 자세한 내용은 서비스 설명서를 참조하십시오. ". 서명과 키가 올바르게 있습니다. – user1878413
다른 오류입니까 이전에 사용하던 오류입니까? 그건 내가 생각했던 것보다 다른 이슈처럼 보입니다. 또한 원래 검색 쿼리와 함께 작동합니까 아니면 지금도 작동하지 않습니까? 해당 라인을 점검하는 데있어 자주 발생하는 몇 가지 실수 : 키 ID와 비밀 키를 전환하지 않았는지 확인하십시오. 실수로 쉽게 되돌릴 수 있습니다. 계정을 다시 확인하여 쌍이 계속 활성화되어 있는지 확인하십시오. @ user1878413 –