亚马逊通过使用API PHP / jQuery搜索ASIN来获取项目详细信息

问题描述 投票:0回答:1

我需要通过搜索ASIN来获取亚马逊产品详细信息(项目名称,品牌,价格等)。

我查看亚马逊的API,但无法找到确切的代码。 https://docs.aws.amazon.com/AWSECommerceService/latest/DG/ItemLookup.html

我想与PHP或Javascript集成。有帮助吗?提前致谢。

php amazon-product-api
1个回答
1
投票

这是一个简单的例子。你必须用你自己的值替换$public_key$private_key$associate_tag。我没有测试过这个,但是请仔细阅读并告诉我们它是否有用。

    <?php

    include('aws_signed_request.php');

    $public_key = '********';
    $private_key = '********';
    $associate_tag = '********';

    // generate signed URL
    $request = aws_signed_request('com', array(
            'Operation' => 'ItemLookup',
            'ItemId' => 'B008GG93YE',
            'ResponseGroup' => 'Small'), $public_key, $private_key, $associate_tag);

    // do request (you could also use curl etc.)
    $response = @file_get_contents($request);
    if ($response === FALSE) {
        echo "Request failed.\n";
    } else {
        // parse XML
        $pxml = simplexml_load_string($response);
        if ($pxml === FALSE) {
            echo "Response could not be parsed.\n";
        } else {
            if (isset($pxml->Items->Item->ItemAttributes->Title)) {
                echo $pxml->Items->Item->ItemAttributes->Title, "\n";
            }
        }
    }

    ?>

aws_signed_request.php代码

<?php

function aws_signed_request($region, $params, $public_key, $private_key,   $associate_tag=NULL, $version='2011-08-01')
{
// some paramters
$method = 'GET';
$host = 'webservices.amazon.'.$region;
$uri = '/onca/xml';

// additional parameters
$params['Service'] = 'AWSECommerceService';
$params['AWSAccessKeyId'] = $public_key;
// GMT timestamp
$params['Timestamp'] = gmdate('Y-m-d\TH:i:s\Z');
// API version
$params['Version'] = $version;
if ($associate_tag !== NULL) {
    $params['AssociateTag'] = $associate_tag;
}

// sort the parameters
ksort($params);

// create the canonicalized query
$canonicalized_query = array();
foreach ($params as $param=>$value)
{
    $param = str_replace('%7E', '~', rawurlencode($param));
    $value = str_replace('%7E', '~', rawurlencode($value));
    $canonicalized_query[] = $param.'='.$value;
}
$canonicalized_query = implode('&', $canonicalized_query);

// create the string to sign
$string_to_sign = $method."\n".$host."\n".$uri."\n".$canonicalized_query;

// calculate HMAC with SHA256 and base64-encoding
$signature = base64_encode(hash_hmac('sha256', $string_to_sign, $private_key, TRUE));

// encode the signature for the request
$signature = str_replace('%7E', '~', rawurlencode($signature));

// create request
$request = 'http://'.$host.$uri.'?'.$canonicalized_query.'&Signature='.$signature;

return $request;
}
?>
© www.soinside.com 2019 - 2024. All rights reserved.