2008年04月08日

ふと思い立って、DoCoMoが新しく始めたiモードIDを取得するためのリンクを既存のHTMLにたいして簡単に付与出来るモジュールを書いた。
HTML::StickyQuery::DoCoMoGUIDといいます。
使い方はPOD見てね。

iモードは昔からセッションを維持するにはURLのクエリパラメータやPOSTの値にセッションIDを入れないと駄目だったのですが、先月末からクエリパラメータの中にguid=ONが入っていればRequest HEADにiモードIDを入れてくれるようになったんですね。
HTML::StickyQuery::DoCoMoGUIDは渡されたHTMLの中にAタグがあればクエリパラメータにguid=ONを追加してくれるというフィルタモジュールです。
もちろんAタグだけじゃなくてFORMにたいしてもうまく動きます。
FORMの場合はmethodがget/postでguidを入れる方法が違ってくるのですが、これも考慮してくれます。

名前空間が物語っているように、HTML::StickyQueryのラッパー的な実装なのです。
HTML::StickyQueryだとFORM周りの処理をしてくれないのですが、HTML::StickyQuery::DoCoMoGUID側で処理出来るようにちょっと拡張してたりします。
何故かguidの処理をしないモードが搭載されているのでSledgeの

# XXX we need HTML::StickAny or something ...
な需要を満たせるかもしれません。
つまり、HTML::StickyQueryでやってる特定のセッションIDの埋め込みも出来るようにラッピングしてます。

なんでそうやってるかって言うと、iモードIDはhttpsの時に動かないのでECサイトとか作る時には結局HTML::StickyQueryとかでセッションIDを埋め込む必要が出てくるので、iモードIDを取りつつセッションIDを埋めときたいといった需要が満たせるのですね。
一見いままでと変わらなさそうですけどもiモードIDは契約者に対してユニークな物が割り当てられてるので、どんなURLからサイトに訪問されてもセッションIDが使い回せる利点があるのですね。
セッションID入りのURLをブックマークしてもらう必要とかが無くなる。

正直、今までHTML::StickyQueryとか使ってなかったので、現在は別のべすとぷらくてすがあるかもですが、もし無いようでしたらどうぞご利用下さい。

Posted by Yappo at 2008年04月08日 23:31 | TrackBack | Perl
Comments
Post a comment









Remember personal info?






コメントを投稿する前に↓の場所にnospamと入力してください。