Amazon Web サービス

Amazon.co.jp では「Amazon Web サービス」という、提供している商品のメタデータXML/XSLT/SOAP 形式で取得できる機能があるのだけど、それを使って ASIN/ISBN コードを入力してやるとその商品の画像イメージ(jpeg)を返す php スクリプトを書いてみた。元ネタは船田戦闘機氏のスクリプトですw

	header("Content-type: image/jpeg");

	// -- Pre processing

	// Get ASIN or ISBN code
	$asin = $_GET["code"];
	// Developer Token (If you using this script, get first devtoken from Amazon.com)
	$devtoken = '**************';
	// Get XML file
	$xml = file("http://xml.amazon.com/onca/xml3?t=webservices-20&dev-t=$devtoken&AsinSearch=$asin&type=heavy&f=xml&locale=jp");

	// -- XML processing

	// XML parser settings
	$parser = xml_parser_create();
	// Array to String convert
	$xmlstr = implode('', $xml);
	// XML metadata to Array
	xml_parse_into_struct($parser, $xmlstr, $value, $index);
	// XML parser free
	xml_parser_free($parser);

	// -- image processing

	// Get image
	$img = imagecreatefromjpeg($value[$index['IMAGEURLMEDIUM'][0]]['value']);
	// Output image data
	imagejpeg($img);

上記プログラムを動作させるには、GD ライブラリが必須なのとココからデベロッパトークンを取得し、スクリプト中に記述する必要がありますので注意!!
使い方は、

http://yourserver/amazonimage.php?code=(ASIN or ISBN コード)

という感じです。GD を使って IMG タグで使えるように image/jpeg のデータが直接渡されるように作りましたが、スクリプト中に IMG タグを埋め込むような感じに作りかえると GD が不要になり手軽に扱えるようになると思います。
ちなみに SDK と船田氏のスクリプトを読みながら作るのに3時間くらいかかりました…XML データを取ってくるときの言語ロケールの設定でハマると思う。