Aug 16, 2009

「オレ専用」アフィリエートリンク生成サービスをAmazon APIの署名認証に対応させた

Amazon Product Advertising APIがとうとう署名認証必須になってしまいました。しかたがないので重い重い腰を上げて、超手抜き「オレ専用」アフィリエートリンク生成サービス(ていうかXSLTでレンダリングしてもらうだけ)をGoogle App Engineに移植して署名認証に対応させました。

Amazon Item Search

アクセスするURLを「http://ogawapy.appspot.com/ecs?associate_tag=<your-associate-tag>」とかすると「オマエ専用」アフィリエートリンク生成サービスとしても使えます。

と言っても私が書いた部分はこれだけです。署名認証用のProxyとしてpaproxyを使わせてもらっています。

全然面白難しいところがないので説明は省略します。要は、ecs.pyはecs.yamlで定義してあるテンプレートをレンダリングするだけの機能を提供し、そのテンプレートでは自前で立てたpaproxyをendpointとするREST API呼び出しをするHTMLやXSLTを定義してあるだけです。ecs.py, ecs.yaml, paproxy.py, paproxy.yamlをApp Engineの作業ディレクトリに追加して、app.yamlを適当に設定すれば動きます。

ところで、paproxyはよくできているなと思いました。自分でも同じようなのを書いている最中に見つけたのでとんだ徒労になってしまいました。

ひとつだけに気になったのは、paproxy (やrubyやperlでのバリエーション) では、問い合わせのパラメータセットが必ずマップ (連想リスト) になると仮定している点です。Amazon APIの問い合わせパラメータセットは「絶対マルチマップ (あるキーに対して複数の値が関連付けられるマップ) にはならない」のでしたっけ?それならその実装で構わないのですが、一般的にはマルチマップになるはずなので、webob.multidict.MultiDictなりを使って実装する必要があると思います。

About Me

My Photo

つくばで働く研究者

Total Pageviews

Amazon

Copyright 2012 Ogawa::Buzz | Powered by Blogger
Design by Web2feel | Blogger Template by NewBloggerThemes.com