Home > perl > Catalystで携帯端末ID取得

Catalystで携帯端末ID取得

  • 2007-06-07 (木) 19:13
  • perl
  • hatena count

Catalystで携帯の端末IDを取得することになったので

Catalyst::Plugin::MobileUserID
http://d.hatena.ne.jp/fbis/20070506/1178464915

を使うことにする。

しかしまず自分の携帯であるau端末のIDが取れない。

んーなんでだ?と調べてみたところ

Catalyst::Plugin::MobileAgent

に問題がありそう。

下記のコード部分。

$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

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://www.geminium.com/chiba_blog/2007/06/07/7/trackback/
Listed below are links to weblogs that reference
Catalystで携帯端末ID取得 from へぼへぼCTO日記
add to hatena hatena.comment (10) add to del.icio.us (0) add to livedoor.clip (2) add to Yahoo!Bookmark (0) Total: 12

Home > perl > Catalystで携帯端末ID取得

Search
Feeds
Meta

Return to page top