- 2007/6/7 木曜日 19:13:28
- perl
Catalystで携帯の端末IDを取得することになったので
Catalyst::Plugin::MobileUserID
http://d.hatena.ne.jp/fbis/20070506/1178464915
を使うことにする。
しかしまず自分の携帯であるau端末のIDが取れない。
んーなんでだ?と調べてみたところ
に問題がありそう。
下記のコード部分。
$c->req->mobile_agent(HTTP::MobileAgent->new($c->req->user_agent));
HTTP::MobileAgentのインスタンス生成の際の引数は
HTTP::MobileAgent::Request
に直接渡される仕組みになってるんだけど、ここでUserAgentも渡せることになっていて、
その仕組みを利用しているようだけど、これだと他のヘッダが取得できなくなる。
HTTP::Headersも渡せるので、$c->req->headersがそれなのでそいつを渡すように
$c->req->mobile_agent(HTTP::MobileAgent->new($c->req->headers));
に変えてあげればいいのだ。
これでau端末のIDも取れました。
試してないけどj-phone(softbank)もヘッダから取得するので取れてなかったと思う。
以下パッチ
--- MobileAgent.pm.orig Thu Jun 07 19:18:24 2007 +++ MobileAgent.pm.new Thu Jun 07 19:18:48 2007 @@ -6,7 +6,7 @@ use Catalyst::Request; use HTTP::MobileAgent; -our $VERSION = '0.02'; +our $VERSION = '0.03'; { package Catalyst::Request; @@ -16,7 +16,7 @@ sub prepare_headers { my $c = shift; $c->NEXT::prepare_headers(@_); - $c->req->mobile_agent(HTTP::MobileAgent->new($c->req->user_agent)); + $c->req->mobile_agent(HTTP::MobileAgent->new($c->req->headers)); } =head1 NAME
- 新しい: じゃじゃまる~ぴっころ~ぽ~ろり~ん
- 古い: Javascript関連本
コメント:0
トラックバック:0
- この記事のトラックバック URL
- https://blog.everqueue.com/chiba/2007/06/07/7/trackback/
- トラックバックの送信元リスト
- Catalystで携帯端末ID取得 - へぼい日記 より