
(注意:このエントリはAWS3.0時代に書かれたものです)
今回はAmazonWebサービスの利用についてです。と言っても何も高度な事をやるわけではなく、「日記の中に体裁の整った個別商品リンクを仕込みたい。出来れば楽をしてリンクを生成したい」とか「サイドバーにオススメ商品リンクを手軽に作りたい」とか「ちょうどいい大きさの画像を表示したい」とかその程度のレベルです。
まず、体裁にあまりこだわらないのであれば、先人が作った優れたサービス(ツール(?))を使わせてもらうのが一番手っ取り早いです。既に『G-Tools』、『amazlet』、『AsociateHelper』という素晴らしいサービスがあります。ほんのちょっとの楽をするためにものすごく面倒なコードを書くというのも考え物なので、これらが生成するHTMLを気に入ったのならそのまま使わせてもらうのがいいと思います。
「生成するHTMLをどうしてもカスタマイズしたい」「出来れば動的にHTMLを生成したい」「大きすぎず小さすぎない丁度いい画像を表示したい」という場合にはXSLTやPHPの勉強をする必要があります。とはいえ、XSLTもPHPも全くのズブの素人である僕ですら何とかなったので、「コードとか書けねえよ!」って人もあきらめるにはまだ早いです。
続きまずAmazonWebサービスを利用するにはアソシエイトIDとは別にサブスクリプションID(旧名:デベロッパートークン)を取得する必要があります。2004年10月16日現在、Amazon.co.jpとAmazon.comとの連携が上手くいっておらず、Amazonアソシエイトセントラル(日本サイト)からIDをうまく取得できない状態になってます。正しいID取得ページに行って、サブスクリプションID(登録ID)を手に入れてください。登録IDは20桁の英数字です(旧デベロッパートークンは14桁の英数字でした)。このIDは後々ずっと必要になります。
手始めに自分が手に入れたIDで、アマゾンから情報を引き出してみましょう。ドラクエ8の商品情報を見てみます。
「?dev-t=」以降の英数字の部分は自分が取得した20桁の登録IDと置き換え、「&t=」以降の部分は自分のアソシエイトIDに置き換えます。すぐ想像つくと思いますが「&AsinSearch=」以降の英数字がasinナンバーです。書き換えたらブラウザのアドレス欄に貼り付けて飛んでみてください。書き換えずにそのままコピペしても飛べます(その場合は僕の登録ID、僕のアソシエイトIDが使われます)。ブラウザに商品情報やカスタマーレビューが書かれたXML文書が返ってきたはずです。
これを加工して、自分のHTML文書に合った体裁にするのがXSLTの役目なんですが、これを書くのが非常に面倒くさいわけです。先に挙げた3つのツールは、独自のXSLTによってさまざまな体裁のHTMLソースを提供するサービスだと言えます。
コピペしたアドレスのうち、「&f=xml」という部分を「&f=http://kowagari.net/diary/xsl/asin.xsl」に書き換えると、このようなアドレスになります。 「http://xml-jp.amznxslt.com/onca/xml3?dev-t=1RY2GZY6JZHCCDDV7482&t=kowagari-22&f=http://kowagari.net/diary/xsl/asin.xsl&locale=jp&type=heavy&AsinSearch=B00062ILP8」。ここに飛ぶと、さっきはわけがわからなかったXML文書が、XSLTのおかげでそれっぽく見えるようになります。
僕の場合は『G-Tools』さんのXSLTを改造して、自分専用のHTMLを生成するXSLTを用意しました。ソースを保存して見比べてみてください。何となく改造の仕方がわかると思います。もうちょっとシンプルな改造XSLTも用意しました。ここからならすぐに自分用に改造できると思います。(本当はここが一番肝心なんですけど、説明すると多分本1冊分くらいの分量になってしまうので端折ります)
さらに『AUSGANG SOFT』さんが作られた『G-Toolsブックマークレット』を併用すると、Amazonの商品ページから直接このXSLTを呼び出せます。登録IDとアソシエイトID、呼び出すXSLTのURLを自分のものに書き換えればそのまま使うことが出来ます。ブックマークレットの説明は小関さんのページがわかりやすいです。
試しにテラヤマ専用ブックマークレット、←このリンクを右クリックして「お気に入りに追加」してみてください。それからAmazonの商品ページ『スター・ウォーズトリロジー』をブラウザに表示して、今さっき「お気に入り」に入れたテラヤマ専用ブックマークレットを表示します。このようにすれば、簡単にHTMLソースを生成できるわけです。
ただ、これによって生成されたHTMLソースは価格変動が起こったときなどに対応できません。Amazonは発売直後が15%OFF、暫く経って定価になるなどの価格変動がよくあります。間違った価格を表示し続けることはAmazonの規約違反です。なので、生成するソースをPHPにして、動的に価格を取得するという方法が使えるのですが、ここにも落とし穴があって、Amazonの規約ではWebサービスから情報を引き出すのは1秒に1回までという制限があります。動画ナビゲーターさんなどにリンクされて、1秒間に10人も20人もこのPHPにアクセスされると、規約違反でサービスを止められてしまう可能性があります。そのような怖れがあるなら、価格や在庫状況は表示しないようにした方が無難かもしれません。あるいはデータベースに格納した最新価格を1時間毎に更新するなどの工夫が必要になります。
これら改造ソースは全てG-ToolsさんやAUSGANG SOFTさん、amazletさんのソースを元にしていることを重ねてお断りしておきます。改造とかしないでそのままこれらのサービスを利用させてもらった方が確実に楽です。
さらに追記。サブスクリプションID(旧名デベロッパートークン)はアプリケーション開発者を特定するためのIDであり、今回の場合で言えばほとんどが『G-Tools』さんの開発したXSLTを、ちょこちょこと僕が改変しただけなので、IDは『G-Tools』さんのものをそのまま使うべきなのかもしれません。
MENU
冷麺最新5件の記事
冷麺最新3ヶ月
Amazonトップセラー