バージョン指定無しの Twitter API エンドポイントが停止されました

昨日、「Twitter の OAuth 認証が通らない」「Twitter のタイムラインに投稿できない」という現象が発生し、一部で騒然となっておりました。時間にして日本時間の午前2時ごろだったようです。

例えばこんな感じ→ 404: {"errors":[{"message":"Sorry, that page does not exist","code":34}]} | Twitter Developers

HTTP status 404 が返ってくるようになってしまったんですね。むむう。

で、「来年と言われていた API version 1.0 の停止が、突然今日実施されたのではないか」という憶測が飛んで(一部で、あくまでも一部で)大騒ぎだったのですけど、いくらなんでもそんなひどいことを Twitter がするはずもなく。

実はこれって、今年の3月とかにとっくにアナウンスがされていた中のこの部分、

All non-versioned API endpoints, such as http://twitter.com/statuses/user_timeline.xml, will cease functioning and you'll need to use the proper endpoints instead.

「バージョン指定のない API エンドポイントは停止するよ。」というのが実施された影響だったようです。で、昨日の2時頃をさかいに繋がらなくなったサービスやらなんやらは、軒並みこのバージョン指定のない API エンドポイントを叩いていたと。そういうことみたいですね。

上記記事では、5月14日にそれが実施されるとアナウンスされたのですが、抗議等あったのか、一旦それが保留になっています。で、4週間ほど前に書かれた次の記事では、

We're moving forward on that now and will be making the following changes on 9/25

9月25日に実施するよ、とされていました。それがどうして日本時間の10月11日にずれこんだのか、経緯は良く分からないのですけど、要するに3月にアナウンスがあって以降、バージョン指定無しのエンドポイントはいつ停止されてもおかしくない状態にあったわけで、メンテせずに放置していたのが不味かったということです。現に、「そんなのとっくにアナウンスされてたじゃん」という方もいらっしゃいました。すいません。

というわけで、もう皆さん原因究明されて直されていると思いますが、もしもまだ「動かないー」という方がいましたら、

http://api.twitter.com/account/verify_credentials.json

みたいに、バージョン指定無しで API 叩いてる箇所が無いか探して頂いて、そこを

http://api.twitter.com/1/account/verify_credentials.json

とか

http://api.twitter.com/1.1/account/verify_credentials.json

というように、バージョンを指定してあげれば動くようになると思います。まだ 1.0 でも動きますが、どうせ来年には止まってまたメンテしなければならないので、これを機に 1.1 にしておいた方が良いでしょうね。

しかしそれにしても、外部のサービスに依存する某かっていうのはこういうことが起こりがちで、常にそのリスクを認識し、情報を逐一チェックする心構えが必要だなー、と改めて思いました。自戒を込めて。