新大阪で働く社長のlivedoorBlog

詳細 一覧

プロフィール

2009/7/2 19:3

新しいAmazonAPI用PHPソースのメモ

8月15日からAmazonのAPIを使うのに認証が必要になるとのことで

Amazon Product Advertising API への対応(PHP版) - もやし日記

上記を参考に作成したものを忘れないうちにメモしておきます。
p4life様、本当にありがとうございます。
まずは「SecretAccessKey」の取得が必要なので

Amazon Web Services

ここから上部メニュー「Your Account」の「Access Identifiers」で確認。
そのコードを下記を使ってデータの取得。

<?php
$AccessKey = "Amazon の AccessKeyID";
$SecretAccessKey = "Amazon の SecretAccessKey";
$key = array(

"書籍" => array("Books",465610),
"CD" => array("Music",562032),
"DVD" => array("DVD",562002),
"ゲーム" => array("VideoGames",637872),
"PCソフト" => array("Software",637630),
"家電" => array("Electronics",3210991),
"おもちゃ" => array("Toys",13299551),

);
// 書籍以外の場合など、下記パラメーターを自由に変えて下さい
$parameters = array(

"AWSAccessKeyId" => $AccessKey,
"BrowseNode" => $key['書籍'][1],
"ContentType" => "text/xml",
"ItemSearch.1.ItemPage" => "1",
"ItemSearch.Shared.sort" => "salesrank",
"Operation" => "ItemSearch",
"ResponseGroup" => "Small,OfferFull,Images",
"SearchIndex" => $key['書籍'][0],
"Service" => "AWSECommerceService",
"Sort" => "salesrank",
"Timestamp" => gmdate('Y-m-d\TH:i:s\Z'),
"Version" => "2009-03-31",

);
// クエリの並びをソート
ksort($parameters);
function amazon_api($SecretAccessKey,$parameters=array()){

$query = "";
foreach($parameters as $i => $j){

$i = str_replace("%7E","~",rawurlencode($i));
$j = str_replace("%7E","~",rawurlencode($j));
$query .= "&".$i."=".$j;

}
$query = substr($query,1);
$string = "GET\necs.amazonaws.jp\n/onca/xml\n".$query;
$string = hash_hmac("sha256",$string,$SecretAccessKey,true);
$string = str_replace("%7E","~",rawurlencode(base64_encode($string)));
return file_get_contents("http://ecs.amazonaws.jp/onca/xml?".$query."&Signature=".$string);

}
?>

あとは上記の「amazon_api($SecretAccessKey,$parameters=array())」でXMLが取得できるので各々のサイトに合わせて整形して下さい。
基本的に自分用に作っているので問題等あるかもしれませんが、ご連絡いただければ修正したいと思います。
それにしてもブログにコードを掲載するのって色分けとか考えると面倒なんですね。
改めて公開されている皆様の努力に感動しました。



トラックバックURL

コメントする

名前
URL
 
  絵文字