uTrackMe 仕様変更

なんぞこれwwwというくらい仕様が変わってしまった uTrackMe 4.0.uTrackMe は現在位置を規定のフォーマットで HTTP サーバに POST できる DIYiPhone アプリなのですが,POST するデータのフォーマットががらりと変わってしまいました.しかも,別アプリで登録すればいいのに,アップグレードの位置づけなので,AppleStore で昔のバージョンを取得することはもうできない.さらに値上がりしている.もうね,なんというか….
フォーマットで大きく変わったのは,下記.

  • 各パラメータのラベルの変更.前はデバイスIDとかは myid だったのに, id とかに変わってるし,デバイス名は label だったのに, nm とかにかわってる.ざけんなよ.
  • 過去の位置情報は lat[0], lon[0] lat[1], lon[1], lat[2], lon[2] みたいにそれぞれ POST されてきていたのに, d[0]=lat,lon,d[1]=lat,lon,d[2]=lat,lon,... みたいに勝手に一つにまとめられた.
  • バイス名はアプリを起動して最初の一回目の POST にしか含まれない.

全部致命的なんだけど,特に最後のが致命的.デバイス名(ユーザが任意に決められるID)をキーにしてログを集計してきたので,これまでのぼくのスクリプトは全滅.一度しか送ってくれないから,二回目以降の POST だと,デバイスIDのコンフリクトの判定とかは一切できない*1.改悪だよこれ.金返せ.
いずれにしろ今までにつくったスクリプトがパーだ.とかいいつつ,ソースの修正はもうした.一部機能は使えなくなってしまったけど….しかも,もう二度と使えない機能になってしまった.

*1:ユーザに表示されるのはデバイスIDではなく,ユーザが任意に決められるデバイス名なので,たまたま同じデバイス名を設定したユーザが複数いると,DBが混乱する.そこで,ぼくの作ったスクリプトでは,トラックログをDB登録するときに,過去に同名のデバイス名が存在するかを確認し,デバイス名とIDに矛盾がなければ受け付けるという処理をやっていた.ところが,今回はデバイス名が最初の一回しか飛んでこないので,二度目以降はこの判定処理ができなくなってしまった.