ホーム > perl > Catalystで携帯端末ID取得

Catalystで携帯端末ID取得

  • 投稿者: chiba
  • 2007/6/7 木曜日 19:13:28
  • perl

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
はてなブックマーク - Catalystで携帯端末ID取得

コメント:0

コメントフォーム
入力した情報を記憶する

トラックバック:0

この記事のトラックバック URL
https://blog.everqueue.com/chiba/2007/06/07/7/trackback/
トラックバックの送信元リスト
Catalystで携帯端末ID取得 - へぼい日記 より

ホーム > perl > Catalystで携帯端末ID取得

検索
フィード
メタ情報

ページの上部に戻る