iframe+XSLでAmazon Web Service

Posted by joeartsea on 2009-02-04

このサイトにAmazonの広告を載せようと思い"Amazon おまかせリンク®"を貼ってみたんですが、コンテンツと関係のない書籍が表示されてしまいます。まったく任せられません(笑)今までアフィリエイト的なことしていなかったので全然疎いんですが、どうやら本家のよりサードパーティー製の方が精度がいいらしいですね。

じゃあどうせなら自分で作ってみようかとAmazon Web Serviceに今更ながら登録してみました。ドキュメントは全部英語なんですね。Amazon Associates Web Service Simple Store in PHPを改造しながら概要を把握してテスト。あっさり動く。

でも何か変だ。なんで洋書ばっかり出てくるんだ?あれ?日本語のキーワード投げると何も返ってこないぞ?urlencodeしてるのにおかしいな~

それもそのはず、サンプルコードは本家ドメイン"ecs.amazonaws.com"へ投げていたからです。日本のサーバ"ecs.amazonaws.jp"へ投げれば正常に返ってきました。Amazon Web サービス入門見て気づきました。ついでにパラメータを指定してリクエストの作成でiframeでリクエストする方法を見つけました。今回の用途はこれで充分ですね。

だけどiframeだけだとXMLが表示されちゃうのでXSLスタイルシートで整形しないといけません。Amazonのサーバがプロセッサ的なことしてくれるのでXSLスタイルシート書いてそいつを指定してあげればいいのだけど、XSLって4年前くらいにJavaのプロジェクトで書いたきりだな~…

XSLTを使ったHTML変換とか、Amazon Webサービス 3.0用のXSLTテンプレートキットについてとか、Amazon WEBサービス:REST/XSLTを使い倒すとかをちまちま調べながら書いていきました。そうだ…確かこういうだるさだったわ。思い出した。4年間も見向きもしなかった理由を思い出しながらやっとこさ完成。どうせ一発じゃ動かないんだろ~と思いながらアクセスすると表示されるのはXMLだけ…

おいおい、ちょっとくらい惜しい表示してくれないとデバッグのしようもないじゃない…XSLのデバッグってどうやるんだろう?なんか便利なツールでもあるのかな~…と探し始めた時、あ!…アホだ。ローカルで試したって動くわけないじゃん。AmazonにリクエストしてAmazonは指定したXSLを見に行くのに、そこがこっちのローカルじゃみれるわけないじゃない…

XSLを公開サーバにアップして再度アクセスしたらあっさり思ったとおりの表示…おお、一発じゃん。