2017-04-16T03:16:47.000+09:00

【廃止時期追記あり】Twitter User streams APIは今後廃止されます

追記 (2018-04-08 12:39):

User streams API の廃止時期を延期することが告知されました。延期後の具体的な日付は未だ発表されていないようです。
この記事はあくまで2次情報であり情報を錯綜させる可能性があるため、これ以上の追跡を控えます。

@TwitterDev の情報などを参考にしてください。


追記 (2017-12-20 10:17):


追記 (2017-06-26 20:58):

2ヶ月前の記事が急に流れ出しましたが、特別変化はありません。公式からのアナウンスを注視してください。

また当初タイトルが Twitter User streams APIは今後数ヶ月以内に廃止されます となっておりましたが、ご指摘頂いたとおり "今後数ヶ月以内" は下書き時点でのミスリードでした。正しくは 新API公開後半年 (数ヶ月) となります。タイトルをTwitter User streams APIは今後廃止されますに改めさせて頂きました。


よく見るとミスってた。正しくコピペすると User streams will eventually be replaced by the Account Activity API. です。


ヒューマンエラーを防ぐ知恵 ミスはなくなるか (朝日文庫)

ヒューマンエラーを防ぐ知恵 ミスはなくなるか (朝日文庫)


明確な時期は出てないものの、User streams API(+ Site streams API) をdeprecateするとアナウンスされました。
deprecateと言っても、その代わりにAccount Activity APIが登場します。重要な通知関連は変わらずリアルタイムで配信されるAPIがあるってことみたい。

Account Activity API (beta) のドキュメントを読んでみると、

The Account Activity API will eventually replace the User streams and Site streams APIs. We plan to provide at least a six month migration window after the Account Activity API graduates from beta. We’ll announce the deprecation date then and encourage you to start using the Account Activity API beta in the meantime.

とあります。こっちの新APIがbeta卒業後 最低6ヶ月の移行期間を用意するってことなので、最悪たとえば明日新APIがproductionに上がった場合は 6ヶ月でUserstreamsが廃止されると取ってもいいかも。
そんなわけはないので、半年以上は使えると思ってよさそう。


Site streamsはもう新規アプリとかで使えてないので割愛。
User streamsが (リアルタイムで) 流してくれていることをおさらいすると、

  • TLのツイート
    • 投稿 / 削除 / 位置情報削除
    • 検閲を受けている場合の国コード
  • APIのrate limit通知
  • 自分のプロフィール更新
  • リプライ
  • RT
    • された / 解除された
  • ダイレクトメッセージ
  • ブロック / ブロック解除
  • ふぁぼ
    • followingが何かふぁぼった / 解除した
    • 自分のツイートがふぁぼられた / 解除された
  • フォロー
    • フォローされた / 解除された
    • followingが誰かフォローした / 解除した
  • リスト
    • 作成 / 削除 / 更新
    • 追加された / 削除された
    • followingが誰か追加した / 削除した
    • 購読された / 解除された
    • followingが何か購読した / 解除した
  • 引用された

あたり。アプリによって全てが配信されるわけではないみたいだけど、ドキュメント上はこれらがある。


新しいAccount Activity APIはWeb Hooksを利用した通知の仕組み。ストリームを繋ぎっぱなしにせず、イベントがある度に都度投げてくれるイメージ。
バッテリー節約になって良さそう。ただ外向きにHTTPを開けておく必要があるので、今後の非公式クライアントは必ずバックエンドのサーバが提供されることになりそう。開発者はサーバ維持が必要になる。

これに関してはsuruyatuでも悩みのタネみたい

Webhooksを受け取ってアプリへPushするサーバ自体はすごく大変ということではないものの、多くのユーザを抱えているアプリにとってはしっかり捌くためにそれなりのコストが発生しそう。けっこう打撃がでかい。


まだAccount Activity APIはBetaなので、これからどんどんUser streamsの提供する内容へ近付いていくと思ってます。
現状で配信がスタートしてるのはdirect_message_events、つまりDM関係のイベントのみ。
おそらくこれは先日新しいDMのAPIが出たのに合わせてということなのだと思うし、多分今後RTや"いいね"の通知も取れるようになるんじゃないかな。

ただし、TLのリアルタイム通知に関してはどうなんだろう?と個人的に疑問。

User streamsは非公式クライアントユーザが ツイートや通知のリアルタイム配信のために使っている、という側面がイメージしやすいのだけど、それ以前にTwitter APIにはけっこう厳しいRate Limitがあるので、ヘビーユーザが規制を受けずに利用するためには必須だったということ。

そういったユーザのTLはめちゃくちゃ早いので、Webhookで送るリクエストの数もバカにならない。HTTPコネクションの確立って意外とコストが高いので、TLがリアルタイムで流れるようなAPIもう出ないんじゃないかな。
出たとしても、だいぶ漏れが多くなりそう。

メッセージングプラットフォームとしてならAPI公開してもいいけど、TLまでAPI経由で読まれちゃうとTwitter, Inc.側からも広告が配信できる余地なくなっちゃうし。非公式クライアント使ってるヘビーユーザが一切収益化できない構造は辞めたいだろうし...



まとめると

  • User streamsが廃止されて、通知まわりが新しくなるよ
  • 開発者はそれなりに大変なので、小さい非公式クライアントは維持が難しいかも
  • TLのリアルタイム配信はどうなるかまだわからないけど、収益化考えると無くなってもおかしくないよね...

あたりまえポエム 君の前で息を止めると呼吸ができなくなってしまうよ

あたりまえポエム 君の前で息を止めると呼吸ができなくなってしまうよ