Amazonの仕様変更に合わせて、ちょっと改造しました。(2008/02/10)
→AZ::Blog : AMAZ君(改)
前回の続きです。
カンタンなタグで、アマゾンの商品リンクを表示します。
2.RESTを利用する。(AMAZ君)
アマゾンのRESTという機能を利用して、ASIN番号を打ち込むだけで、題名や著者名、値段などの情報を取得してみます。
[さらに用意するもの]
そして、上のサブスクリプションIDを使って、
http://xml-jp.amznxslt.com/onca/xml3?dev-t=サブスクリプションID&t=アソシエイトID&f=xml&locale=jp&type=lite&AsinSearch=ASIN番号
というような、アマゾン商品のxmlが生成できます。
(パラメータを変えると、取得情報がいろいろ変えられます。)
このデータを、XSLTというものを使って、整形します。
説明抜きで、とりあえずブログ管理画面のテンプレートで「テンプレートを新規作成」。
このサンプルのようなxslファイルを作って、amaz.xslなど、適当な名前で保存します。
文字エンコード(euc-jpとかUTF-8とか)と、アソシエイトID(2箇所ある)は、自分にあわせて書き換えます。
(サンプルはダウンロードし、テキストエディタで開いて、コピー。IEで見ると、「+」「-」記号が憑くので。)
これを使って、
http://xml-jp.amznxslt.com/onca/xml3?dev-t=サブスクリプションID&t=アソシエイトID&f=作ったxslファイルのURI&locale=jp&type=lite&AsinSearch=ASIN番号
という、整形した結果がこんな感じ。
(xslをいじくると、表示情報…題名、著者名、要約など…がいろいろ変えられます。)
これを、PHPのreadfile関数を使ってブログに貼り付ける。(この方法は、アクセス数の非常に多いサイトでは問題があるかもしれない。)
そして、MTMacroで、簡単タグ化。
モジュールはこれ。(1で作ったモジュールの続きに書けばいいです。)
<MTMacroDefine name="amaz" tag="amaz">
<?php readfile("http://xml-jp.amznxslt.com/onca/xml3?dev-t=サブスクリプションID&t=アソシエイトID&f=作ったxslファイルのURI&locale=jp&type=lite&AsinSearch=<MTMacroAttr name="asin">"); ?>
</MTMacroDefine>
1の時と同様に、表示したいテンプレートに、モジュールincludeを書き込みます。
<body>
<$MTInclude module="amas"$>
<$MTInclude module="amaz"$>
phpが使えない場合、iframe(インラインフレーム)やJavaScriptでブログに取り込むことができるでしょう。
で、CSSでデザインをほどこした後、以下のタグを記事に書き込む。
<amaz asin="ASIN番号">
すると、このようなリンクができます。
蟲師 初回限定特装版 第五集 [DVD]
¥ 11,970 / マーベラス エンターテイメント
( )
通常24時間以内に発送
by AMAZ君(改)
はじめて、自家製の技術情報を書いたよ。
夏休みの工作の宿題が終わったような気分ですヽ(´ー`)ノ
まだいろいろ問題があるのですが、ちょこちょこ直して逝きたいです。(大きい問題は利用規約の1秒1回コール…じつはそれもよくわかってない)
…じつはJavaScriptで作ろうとしているのですが、なかなかうまくいかないです(;・∀・)
こういうの作ったものの、とりこめなかったし。。
わかる人にとっては、簡単なことのはずなのにぃ。
XMLHttpRequestを使うのもやってるのですが、なかなか成功しないOrz
[参考サイト」
■Amazon WEBサービス:REST/XSLTを使い倒す1 基礎知識:Goodpic