私の使っているsoftbank携帯(912SH)では製造番号通知がデフォルトではオフのため、かんたんログインができませんでした。意外とこの問題を抱えている人は多いのではないでしょうか?
softbank3G携帯ではUIDが取得できるため、こちらを取得すればログインができるはずです。
試しに実装してみました/webapp/lib/OpenPne/KetaiID.phpの77行目
// SoftBank
elseif (!strncmp($ua, 'SoftBank', 8)) {
$pieces = explode('/', $ua);
$piece_sn = explode(' ', $pieces[4]);
$sn = array_shift($piece_sn);
if (!strncmp($sn, 'SN', 2)) {
$id = $sn;
}
}
を
// SoftBank
elseif (!strncmp($ua, 'SoftBank', 8)) {
$pieces = explode('/', $ua);
$piece_sn = explode(' ', $pieces[4]);
$sn = array_shift($piece_sn);
if (!strncmp($sn, 'SN', 2)) {
$id = $sn;
}elseif (isset($_SERVER["x-jphone-uid"])){
$id = $_SERVER["x-jphone-uid"];
}elseif (isset($_SERVER['HTTP_X_JPHONE_UID'])){
$id = $_SERVER['HTTP_X_JPHONE_UID'];
}
}
これで私の携帯でもログインできるようになりました。 UIDであれば機種変更しても変わらないため今後はこちらをメインで取得したほうがよいかもしれません。(mixiやモバゲーもUIDを取得しているはずです)今回は先にUIDを取得してしまうと現ユーザーが再設定しない限りログインできないためこうなってしまいました。バージョンは2.12までは動作確認済みです。
後述:
実はこのプログラムは2.12で本家のOpenPNEに
組み込んでいただくことになりました。
そのためそれ以降のバージョンには対応済みです。
自分のソースが組み込まれるのはちょっとうれしかったりします。
まあ・・たいしたソースでもないんですけどね・・・