続アマゾンの問題(MTTagInvoke導入)

2004年10月2日

さて、前回からの続き。と思ったら前回はこうさぎのエントリでした。

きょうはharinと統合しなかった?

って、オレとharinは分離気味なのだろうか。それともharinとこうさぎが統合するのだろうか。

きょうは統合しなかった。あしたもきっと統合しない。

さて、本題です。問題、と申しましてもアマゾンというよりはウログ運用上の問題です。毎度毎度同じものが表示されてしまうという問題です。つまり、MTでは属性を変数に入れられないという問題です。

amazon.co.jpから検索結果をもらってくるには、まず検索する語なりISBNなりをアマゾンに渡す必要があります。aws.plのreadmeにもありますように、それは「query="4061823817"」や「query="西尾維新"」のような形で表現されます。例えば、

<MTAws dev_token="XXXXXXXX" associate_id="harihari99-99" search="KeywordSearch" query="西尾維新">
<a href="<$MTAwsurl$>">
<img src="<$MTAwsImageUrlSmall$>" />
<$MTAwsProductName$>
</a>
</MT Aws>
※注:デベロッパー・トークン及びアソシエートIDは偽りです。

とすれば、西尾維新の著作がずらずら〜と表示されるわけです。素晴らしいですね。多作ですね。

ただ、私としましては「query="西尾維新"」の部分をエントリによって変化させたい。西尾維新のファンサイトであれば、上記のようにテンプレートに直接「西尾維新」と書き込むこともあるでしょう。でも、鯖書房はそうではありません。清涼院流水や舞城王太郎も読みたい。佐藤友哉を読みたいことだってあるのであります!佐藤友哉のエントリには佐藤友哉の著作を自動表示したい。

そこで考えられるのが、エントリのキーワード欄に「佐藤友哉(著者名),フリッカー式(書名)」や「4061821962(紹介している本のISBN)」を入力しておいて、「query="<$MTEntryKeyword$>"」のような感じで、アマゾンへの検索語をエントリごとに指定しなおす仕組みでしょう。こうすれば、エントリに対応したデータや画像を自動取得できます。ていうかどっちかっていうと、こういう使い方の方が一般的ではないですか?違いますか?何か私、おかしいですか?

でもですね。ところがですね。できないのですこれが。MTでは、属性(attribute)にタグを指定すること(つまり「query="属性"」の"属性"部分に<$MTEntryKeyword$>のようなタグを入れること)ができないのです。なんで?ややこしいから?めんどくさいから?ハリンだから?ウログだから?神も仏もおらんから?

いました。神も仏もおわしました。またしてもプラグイン。いや、むしろプラグイーン!MTTagInvokeという代物です。逸品です。家宝にしてください。床の間に飾って三回拝んでください!(参考:CROQU

これをプラグインフォルダにプラグインするとですね。属性にタグを指定できるですよ。ちなみにうちはこんな具合です。

<MTTagInvoke tag_name="MTAws" dev_token="XXXXXXXX" associate_id="harihari99-99" search="KeywordSearch" mode="books-jp">
<MTTagAttribute name="query">
<$MTEntryKeywords$>
</MTTagAttribute>
<MTTagContent>
<a href="<$MTAwsurl$>">
<$MTAwsAuthors$>,<$MTAwsProductName$>
</a>
</MTTagContent>
</MTTagInvoke>
※注:デベロッパー・トークン及びアソシエートIDは偽りです。

<MTAws>はどこにいったかといいますと、いちばん外側のコンテナタグ<MTTagInvoke>の属性「tag_name="MTAws" 」のところなのです。で、dev_token="XXXXXXXX" associate_id="harihari99-99"などなど、<MTAws>の属性だったものが続きます。つまりもともとタグだった<MTAws>が今回導入した<MTTagInvoke>タグの属性になるわけです。肝心の「query="属性"」は、内側のコンテナタグ<MTTagAttribute>の属性、「name="query"」にきています。変数タグについては<MTAws>と同じ記述でいけます。

これでもう、どしどしですよ。どしどしどしですよ。

と言いたいところなのですが、問題がないでもないです。アマゾンにない書籍や雑誌を紹介する時です。検索結果がゼロのときはキーワードの内容をそのまま表示する、というようなことをやりたいのですが、これがなかなかうまくいかない。よい方法をご存知の方、いらっしゃいましたらご教示くださいませ。

コメントをどうぞ