Cosnomi
Cosnomi

医療×IT / 医学生 / Web(React, Flask) / 機械学習(画像認識, Keras)

Twitter / GitHub / Keybase

間近に迫るTwitter APIの大きな2つの変更

この夏、Twitter API について大きく分けて2 つの変更が行われます。

  1. Streaming API の廃止
  2. developer.twitter.com への変更

1 については他のブログなどでもかなり大きく取り上げられています。端的に言えば、多くの非公式クライアントの売りであるストリーミング機能を使えなくするということで、かなりの反発があります。

2 については知らない人もいるのではないでしょうか。これは、API を使うために新たな承認プロセスを要求するものです。1 に比べれば影響は小さいように思えるかもしれませんが、Twitter を使った Web アプリを作ろうとしている人などには大きく関係してくる事柄です。

Streaming API への変更

Streaming API が 8/16 より廃止されます。

Streaming API とは

アプリ側からツイートなどを取得しに行くのではなく、サーバーからツイートなどが流れてくる方式で、リアルタイムでの更新を実現します。リアルタイム更新の TL は非公式クライアント(非公式といっても規約違反なわけではなくきちんとしたサードパーティー製のクライアントということです)についていることが多く、公式アプリと比較して大きなメリットとされている点の 1 つです。

この API がなければ、リアルタイムでの更新を実現するためには非常に短い間隔で API を叩く必要があり、Rate Limit の点から現実的ではありません。したがって、Streaming API の廃止は非公式クライアントの大きなメリットの 1 つであるリアルタイム更新 TL を潰すことになります。

その代わりの Account Activity API とは

Streaming API がなくなった代わり?にAccount Activity APIというものができました。

Account Activity API は Webhook を利用していて、機能で言えば Streaming API より強力です。しかし、15 アカウントまでは無料なものの、それ以上は有料で決して安くありません、少なくとも一般ユーザーからそれなりの月額課金をしてもらわないと非公式クライアントは採算がとれない程度には高いです。

つまり、Account Activity API を利用してストリーミングTLを実現するのは非現実的です。

developer.twitter.com への移行

今までは apps.twitter.com で気軽にアプリを登録して Twitter API を試すことが出来ましたが、7/24(過去)より既に developer.twitter.com でより厳格な承認プロセスを経ることが要求されています。

目的・審査基準

この新たな承認プロセスの目的は、規約違反や低質なアプリの排除にあるようです。ですから、申請にあたっては、そのアプリがどのような動作をするアプリなのかを詳細に書く必要があります。また、仕様変更時にも同様に書く必要があります。

既存のアプリは猶予期間がある

既存のアプリ、つまり、7/24 よりも前に apps.twitter.com で登録されていたアプリは developer.twitter.com での承認について90 日の猶予期間があります。言い換えれば、9 月上旬までには既存の Twitter アプリも承認を受ける必要があるということです。面倒ですね。

解除可能なアプリごとの Rate Limit

今までのユーザーごとの Rate Limit の他に、developer.twitter.com への移行に伴い、初期状態では post 系のエンドポイントに対してアプリ全体での Rate Limitも加わります。(2018/09/10~)

とはいえ、これは申請すれば解除してもらえるそうなのでそこまで大きな問題にならないことを祈っています。

これらの規制について思うこと

スパム対策は必要

後者の規制(新たな承認プロセス)について、一番大きな目的はスパムの排除でしょう。確かに、現状、いわゆる「乗っ取り」呼ばれるTwitter APIを利用して同意を得ずに広告をつぶやく行為が増えています。

このような悪意のあるソフトウェアの数が多くなるにつれ、Twitter 社も対応しきれないようになり、「出てから削除」から「出る前に削除」に方針を変えたのではないかと考えます。

非公式クライアント排除の意図も・・・

しかし前者の規制(Streaming API の規制)については、スパム対策ということではないでしょう。純粋に考えればサーバーの負荷軽減 という意味かもしれませんが、やはり非公式クライアントを排除しようという意味合いが強いのではないかと私は考えます。Twitter の収入源は主に広告と考えられますから、公式クライアントを使ってもらって広告収益を増やしたいということかもしれません。

しかし、これをもって Twitter を非難するのも根本的な解決にはならないと思います。膨大な数のユーザーを 1 つの場所に集めているのですから、コストが掛かります。営利企業としてはそのコストを回収する必要があるでしょう。ですから、このような強硬策に出るのも理解できます。

Twitter に代わるサービスを見つけることも重要

こういった変更が行われるたびに思うことですが、自分も含めてTwitterのユーザはTwitterに依存し過ぎな気がします。Twitterはあくまで一つの営利企業が提供するサービスでしかなく、真に自由ではありません。それは、一企業によってアカウントの凍結などが行われかねないという意味もありますが、そのコミュニティの運命が一企業に握られているという意味でもあります。

一時期、MastodonというActivityPubを利用した「非中央集権」をテーマにしたSNSがかなり流行りました。しかしながら、Twitterという一つの場所のパワーは強く、Mastodonに手を出す人は多くいたものの、結局のところ完全に移住した人はそこまで多くありませんでした。それほどに強力なTwitterというサービスを維持するにはこの変化も必要なものなのかもしれません。