青竹雑記帖(6代目)

テキスト処理をメインとしたIT解説をします。

Twitter社に艱難辛苦(大袈裟)を与えられながらも生きる道を考えるなど

Twitterサードパーティクライアントアプリの大量締め出し(数年ぶりn回目)

くそう、またやりやがった!(画像略)

歴戦のTwitterオタクや、公式ウェブサイトや公式クライアントアプリが使いにくいなーという人が利用するサードパーティクライアントアプリが、数年ぶりにまた締め出しを食らいました。金曜日の日本時間12時過ぎ、突如として「認証が必要です」とのメッセージが表示されて強制ログアウトさせられ、その後再認証を試みるも蹴られまくり、諦めて公式クライアントアプリに緊急避難する事態となりました。はじめは自分のアカウントが凍結されたことを疑いましたが、タイムラインの報告では多くの有名どころのアプリを使っていた人がことごとく同様の被害に遭っていたため、これはTwitter社が何らかの意図をもって実行したものと思われます。状況をみるに、APIの総アクセス数が多い(≒利用者が多い)アプリの認証トークンを利用したAPIアクセス権限を停止した可能性があります。

この件について、Twitter社は現時点では特に公式声明を発表していません。情報技術をかじる者として、Twitter社がやりそうな声明の内容は多少は推測がつきます。「APIサーバへの負荷を軽減しつつユーザ体験のさらなる向上を図るため云々」とか言えば、社会的にも突っ込みようがない見解となります。本当のところはわかりません。

私は比較的初期からサードパーティクライアントアプリを利用してきました。当時は新着ツイートを次々に配信するUserStream APIが提供されており、アプリを立ち上げて接続し、UserStreamをオンにするだけで新着ツイートが無限に流れてきていました。我らTwitter中毒者にとっては新しい情報が続々来るのは幸せスパイラルそのものです。パック酒でスパイラルをグングン回すバンドメンバーよりは肝臓の健康によく、目の健康に悪いです。私はPCではOpenTweenやJanetterを利用していました。そのAPIが廃止されたとき、パソコンではTweetDeck利用に移行しましたが、スマートフォンでは引き続きサードパーティクライアントを活用していました。SobaChaやTweetCaster、びよーんったー、近年では長きにわたりTwitPane+を愛用していました。しかしこのたび、TwitPane+が締め出されてしまい、途方に暮れています。せっかく今月のみかじめ料を払ったのに……(Twitter Blue)

実際、近年のTwitter社は新機能に対するAPIエンドポイントを用意せず、公式クライアントアプリを使うよう誘導していた節があります。代表的なものとしては、投票機能は表示するための情報を得ることができても投票作成・投票実施用エンドポイントが無いため、サードパーティクライアントアプリでは機能を実装したくてもできません。Twitterスペースもそうです。リアルタイムなプッシュ通知機能もAPIが存在しません。スペースはどうでもいいですが、投票機能やプッシュ通知は活用しているので、癪ではあるものの公式クライアントアプリを併用していました。公式アプリを使えと言われればツイ廃ですから順応できなくもありませんが、でもなんだか使いにくい、でも手が伸びて使ってしまう。くそう。

そうだ、アプリ、作ろう(ただし自分専用)

金を払った手前、Twitter社に無条件降伏するのは業腹なので、10年ぶりに思い立って自分専用のTwitterクライアントアプリを作ることにしました。昨年夏にAPIアクセス用の申請をしていて、認証トークンの発行は受けていたため、それを活用することにしました。まずは実験としてPythonスクリプトからの投稿を試し、無事成功しました。昔と比べると認証回りが強化されて、手順がだいぶ増えている感じです。

APIとして外部公開されているものを全部実装しようとすると非常に面倒なので、公式アプリだと使いにくい部分だけを実装することを目指します。具体的には

  • ワンステップでの投稿(誤タップ防止機構つき)
  • ハッシュタグの入力支援を自分好みに
  • TLの表示を自分好みに
  • via芸をやりたいので投稿元アプリを表示

あたりを考えています。保有端末がAndroid系とiPhoneiPad系と両方あるため、ウェブアプリの形式で作るつもりです。がんばります。このあたりもうまくいったらこのブログの連載にしてみようかなと思います。