Archive for 4 月 11th, 2008

P1エミュレータを使ってiモードID機能を開発してみました

2008/4/11 金曜日 Posted in DoCoMo | No Comments »

先月末にスタートとなったドコモのiモードID機能対応のため、ケータイプログラマの皆様は、あちこちで仕事に追われていることと思います。 私も先日、仕事で実装する機会があったのですが、ちょうど少し前にP1エミュレータがバージョンアップし、iモードIDに対応したとのことですので、これを利用して実装してみることにしました。 → P1 Emulator リリースノート [netfarm.ne.jp]   まずはエミュレータ側の設定からです。 iモードIDの設定は、メニューの「オプション」→「全般設定」→「高度な設定」タブから設定できます。 ひとまずiモードIDを「abcdefg」としてみます。 β版では制限がある旨のメッセージが表示され、xxxxxでマスクされてしまいました。 なりすましのテストには利用できなさそうですね。 β版以外では解除されるように読めますが、これは正式版を購入させるための機能制限でしょうか、それともセキュリティのためなのでしょうか?   さて、続いてはプログラム側です。 仕事ではかんたんログインを作成したのですが、さすがにそれは公開できないため、サンプルコードとして次のようなものを用意してみました。 iモードIDが取れなければリダイレクトし、パラメータに「guid=ON」を付け、idを取得する仕掛けです。 <?php // iモードID取得のためのパラメータが付いていなければリダイレクト $agent = $_SERVER['HTTP_USER_AGENT']; if (preg_match('/^DoCoMo/', $agent) and !isset($_GET['guid'])) { redirect($_SERVER['SCRIPT_NAME'] . '?guid=ON'); } echo 'iモードID:' . $_SERVER['HTTP_X_DCMGUID']; // リダイレクト function redirect($page) { $url = 'http://' . $_SERVER['HTTP_HOST'] . $page; header(sprintf("Location: %s", $url)); exit; } ?> 無事取得できました。 iモードIDは基本的に実機がないとテストができなかったため便利ですね。 ドコモ公式の「iモードHTMLシミュレータII」も、早く対応して欲しいものです。   関連: 本日提供が開始された「iモードID」機能を早速試してみました 3キャリア対応の新ケータイエミュレータ「P1 Emulator」と実機を比較してみました PCからケータイのユーザエージェントを詐称するには(Firefox編) Read more..