F.Ko-Jiの「一秒後は未来」

TwitterのIDが64bitになるとJavaScript等で問題が出るので対策を

Twitterのシステムが生成する ID の体系が変わるという情報は以前からありました。

» Twitterのstatus IDの仕組みが変わる – 頭ん中
» The Twitter Engineering Blog: Announcing Snowflake
» Status IDs are changing on 21st September – Twitter Development Talk | Google グループ

Snowflakeというシステムを使って、ツイートやユーザーの ID が64bitの整数で生成されるようになるそう。

特に影響はないかなと思っていたのですが、ProgrammableWebの「The Twitter ID Shuffle: Text vs Numbers」という記事に気になることが。

The reason for aborting the launch was the fact that the new Twitter IDs (64bit unsigned integers) via the Snowflake Service caused problems on languages like JavaScript that could not parse greater than 53 bits successfully.

どうやら JavaScript のような言語では、仕様の問題から 53 bit を超える整数は正しくパースできないようです。つまり何も対策を講じないままでは JavaScript を使ったサービスでは問題が生じるということになります。

そこで Twitter では API のレスポンスに「id_str」という ID の文字列表現のデータも一緒に含めて返すという対策をとるようです。問題がある場合は整数ではなく文字列として扱ってくださいと。

「_str」は id だけじゃなく in_reply_to_status_id などにも同様に適用されます。

この ID 体系の変更ですが、現在のところ以下のようなスケジュールでおこなわれる予定になっています。

  • 2010年10月22日に文字列バージョンのIDがAPIのレスポンスに含まれるようになる。
  • 2010年11月4日にSnowflakeが 41 bit までの ID を生成するようになる。
  • 2010年11月26日に 53 bit を超える ID が生成されるようになる。

ということで11月26日がデッドライン。JavaScriptベースの言語で Twitter の API もしくは API のレスポンスを扱っている場合は、10月22日以降、なるべく早めに id_str を利用するようにしておきましょう。

» Snowflake: An update and some very important information – Twitter Development Talk | Google グループ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

著者について

fkoji

F.Ko-Ji

Webエンジニアやってます。最近は ドットインストール の開発がお仕事です。その傍ら、個人で Meity電車遅延なう梅酒.in#グラドル自画撮り部 の部室といったネットサービスを開発・運営してます。梅酒と草野球とリアル脱出ゲームが好きです。

» 詳しいプロフィールや運営サービスの一覧など