mixiアプリのユーザーIDの指定方法が変わるということで、登録していたアプリを修正しました。
対象のアプリはこちら。
ユーザーID新方式とは何か
今までは、アプリからユーザを指定する場合、mixiで一般的に使われている数字連番のIDを使っていました。新方式では今までの数字のIDと脈絡のない英数字13桁のIDが使われるようになります。
なぜこんな修正をするのかは想像するしかないですが、数字連番だと総当たりでユーザを捜しやすいので、それを避けるためではないかと思います。mixiのサイト全体でこの変更が行われるのかどうかは分かりません。とりあえずmixiアプリは変わるとのことです。
どんな影響があるのか
新方式への移行後は、APIでは新方式のIDしか知ることができなくなるため、ユーザーIDを保存しておいて利用するようなアプリの場合、ユーザが特定できなくなります。
ユーザーIDを保存しないアプリの場合は、アプリ内では新方式で統一されるため、特に影響はないです。
しかし、一般的にはユーザーIDを保存することが多いでしょう。さすがに影響が大きいので、mixiでは「移行期間」*1を設けて、その間、現行のIDを使いながら新方式IDも取得できるよう、ID変換APIを一時的に提供しています。*2
「にゃんこすいーぱー」ではどう対応したか
「にゃんこすいーぱー」では、ハイスコアを保存する際にユーザーIDも保存していました。なので、保存していたユーザーIDを変換する必要があります。
自前のサーバにデータを保存するアプリの場合、ID変換APIを使って対応表を作り、保存していたデータを書き換えればいいのですが、本アプリでは、mixiアプリのAPIが提供するデータストアを使っていました。この領域はアプリユーザごとにあり、ユーザがアプリを起動したときしか更新できません(IDが分かれば参照は可能)。なので、ID変換APIを使うことはあきらめました。*3
「にゃんこすいーぱー」のハイスコアは、以下の2つを別々に保存しています。
- アプリユーザ自身のハイスコア
- アプリ全体のハイスコア
1にもユーザーIDを保存していますが、ユーザーIDは別の方法でも分かるので、本来は冗長なデータです。この部分は「別の方法」(データストアを指定するときに使うユーザーID)を使用するように変更しました。
2については変換をあきらめました。2のハイスコアは本当の意味での「全体のハイスコア」ではなく、マイミク同士が知り得る範囲のハイスコア(最初は自身のハイスコアからスタート)を交換することで、徐々に広まっていく方式をとっていました。ですので、今回もう一度徐々に広がっていくことに期待することにします。
この方式の利点は、移行期間のフェーズに関わらず使用できることです。すでにプログラムは入れ替えましたが、アプリは今まで通り動作しています。新方式に切り替えた瞬間に、いったん「全体のハイスコア」がクリアされますが、徐々に再構築されていくはずです。
新方式への切り替えは来週末の予定。上手く切り替わってくれるといいのですが。
追記 (2011-10-29)
22:00に新方式に切り替えました。うまく動作しているようです。
アプリで取得できるユーザのURLや、ユーザごとのアイコンのURLに含まれていたユーザーIDも新方式のIDになっているようです。mixiのサイト全体でIDを切り替えるのかな。