読者です 読者をやめる 読者になる 読者になる

Asterisk - アスタリスク -

説明するほどでもないブログ

【PHP】Product Advertising API でブラウズノード検索をする

どうも。

今回はプログラムの覚え書きです。ヽ(゜▽、゜)ノ
可能な限りピンポイントで商品検索をするために BrowseNodeId を取得してみた。

config.json
{
    "access_key_id"     : "**********",
    "secret_access_key" : "**********",
    "associate_tag"     : "**********"
}
amazon_api_test_01.php
<?php

    $access_info = json_decode(file_get_contents("../config.json"));

    $baseurl = "http://ecs.amazonaws.jp/onca/xml";

    $params = array();
    $params["AWSAccessKeyId"] = $access_info->access_key_id;
    $params["AssociateTag"]   = $access_info->associate_tag;
    $params["BrowseNodeId"]   = "2128664051";
    $params["Operation"]      = "BrowseNodeLookup";
    $params["Service"]        = "AWSECommerceService";
    $params["Timestamp"]      = gmdate("Y-m-d\TH:i:s\Z");
    $params["Version"]        = "2011-08-01";

    // sort the parameters
    ksort($params);

    // create the canonicalized query
    $canonical_string = "";

    foreach ($params as $param => $value)
    {
        $param = str_replace("%7E", "~", rawurlencode($param));
        $value = str_replace("%7E", "~", rawurlencode($value));
        $canonical_string .= "&" . $param . "=" . $value;
    }

    $canonical_string = substr($canonical_string, 1);

    // create the string to sign
    $method = "GET";
    $host   = parse_url($baseurl)["host"];
    $path   = parse_url($baseurl)["path"];

    $string_to_sign = $method . "\n" . $host . "\n" . $path . "\n" . $canonical_string;

    // calculate HMAC with SHA256 and base64-encoding
    $signature = base64_encode(hash_hmac("sha256", $string_to_sign, $access_info->secret_access_key, True));

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

    // create request url
    $request_url = $baseurl . "?" . $canonical_string . "&Signature=" . $signature;

    $xml = simplexml_load_file($request_url);

    echo $request_url."\r\n";

?>


上記を利用して商品カテゴリツリーを辿って行くと・・・

BrowseNodeId レーベル
2400894051 GA文庫
2400895051 HJ文庫
2400897051 MF文庫J
2400899051 このライトノベルがすごい!文庫
2400901051 ガガガ文庫
2400902051 スーパーダッシュ文庫
2400904051 ファミ通文庫
2400906051 一迅社文庫
2400908051 富士見ドラゴンブック
2400909051 富士見ファンタジア文庫
2400913051 角川スニーカー文庫
2400914051 電撃文庫
2400916051 講談社ラノベ文庫
2400917051 星海社文庫
2400919051 電撃ゲーム文庫
2400922051 KCG文庫
2508530051 オーバーラップ文庫

こんな感じで取得できました。次はこれを利用してレーベルごとに商品検索を行い、タイトルなどを取得していけば・・・。

参考URL

以上です。