総額440億ドル(約6兆4000億円)でTwitterを買収したイーロンマスクが、2022年10月27日「Entering Twitter HQ – let that sink in!」とのツイートとともにTwitter本社に乗り込んで以降、Twitterには色々と変化が起きてました。

無料Twitter API有料化の経緯

無料のTwitter APIはbotの温床

Twitterが変化する中でも、Twitter API関連の変化は激しく、無料APIはbotの温床だから認証に100ドル/月を払わせるといった話をイーロンマスクがツイートして、無料Twitter APIの有料化が一気に話題になるようになりました。

v1.1・v2の無料アクセスをサポート停止と予告

実際、イーロンマスクのツイートに合わせて、Twitter Developer公式も2023年2月9日以降はv2とv1.1のTwitter APIへの無料アクセスはサポートされなくなります」とツイートしていたので、無料APIは終了とは思ってました。

私の場合、無料のTwitter APIで取得したトレンドワードデータを使い、「ツイータン」という趣味サイトをやってましたが、そんなサイトに月100ドルも払えるわけがないので、2019年10月から動かしていたサイトも終了させるしかないかと思い、ガックリしてました。

サービス終了予告日が急遽延期に

ところが、サポートを終了するといってた2023年2月9日当日になってみたら、「2023年2月13日まで、現在の無料のTwitter API アクセスを延長する」と終了予定日の変更が突然発表されました。

9日が13日に延期された程度なので、大して変わらないとは思ってましたが、サイトが少し延命できてホッとしたのを覚えてます。

サービス停止予告日が無期限延期

延期された13日になり、今度こそ本当にダメだろうとは思っていたものの、無料APIキーは変わらず使うことができました。翌日14日になって、更に数日遅らせるといったツイートはされましたが、一週間後になってもAPIキーは問題なく使い続けることができていました。

結局、それ以降は公式から新APIに関するツイートもなくなってましたが、3月末に新しいTwitter APIをリリースするとの発表がでて、なんだか嫌な予感はしました。

それでも、4月になっても無料APIキーを普通に使うことができていたので、移行プロジェクトは大失敗したのかな?とは思って気楽に過ごしていました。

Twitter APIバージョン1.1のAPIキーが使えなくなる

このまま何もなければ、、とは思っていたものの、4月に入って「リツイート直後のツイートを表示するやつ」や「アプリ☆メーカー」のような、有名Twitter連携サービスが停止するといったことが相次ぐようになっていました。

そろそろ何かあるかと思っていた4月18日頃、APIキーのうち一つが機能していないことに気が付きました。慌ててTwitterのデベロッパー管理画面を見ると、Appの一つに真っ赤な三角マークが付いていました

Appの詳細を見ると、「SUSPENDED」と赤字で警告が表示されていて、横の警告文には、Twitterのポリシーに違反しているので停止したといった内容が書かれていました。

SUSPENDED This App has violated Twitter Rules and policies. As a result, it can no longer be accessed. For assistance, submit a support ticket.

数年間ツイートの検索に使っていただけで、特に最近変わったこともやっていなかったので、いよいよオワリの始まりかと思ってガックリしてしまいました。

SUSPENDEDとなったバージョン1.1アプリを削除する

APIキーの一つが「SUSPENDED」となっているものの、以前にブログ記事にも書いたように、私はAPIキーを二つもっていました。

何故かもう一つのAppキーは正常に動き続けていたので、サイトの方は生き残ったAPIキーを使って動かし続けるとして、この「SUSPENDED」の赤警告が付いたキーは削除してしまうことにしました。

「サポートが必要な場合は、サポートチケットを送信してください」とはあったものの、ここ最近の流れもあり、抗議しても意味がないとは思ったので、特に何もしませんでした。

削除ボタンを押すと、消したら戻せんよとの警告が書かれていましたが、予備キーもあるのでズバッと消してしまいました。

Twitter開発者画面でv1.1のAppキーを削除

Twitter APIバージョン2への対応をする

Twitter管理画面のタイトルが「Dashboard→Developer Portal」に変わったりと、この数日間でも激しい変化をしていましたが、「Twitter API v2」のところを見ると、「NEW」表示と緑丸印まで付いてアピールがされています。

Twitter開発者画面でTwitter API v2の詳細

詳細をみると、「You have Free access」との表示もあります。この先Twitter APIがどうなるのかもよく分からないですが、Twitter API v2にも無料枠はあるようなので、とりあえず使えるようにしてみようと思いました。

プロジェクトを作成する

Twitter API v2の利用にはプロジェクトが必要らしく、まずはプロジェクト作成を求められました。

Twitter開発者画面でTwitter API v2用のプロジェクトを作成

先に進むと、プロジェクト単位で管理や使用状況監視をするみたいなことが書かれていたので、適当な名前を付けて先に進みます。

Your Project helps you organize your work and monitor your usage with the Twitter API.

Twitter開発者画面でTwitter API v2用のプロジェクト名を設定

更に先に進むと、あなたが使う意図は何?とのドロップダウンが表示されましたので、サイトにツイートを埋め込むためだよと素直に答えておきました。

This is how you intend to use the Twitter developer platform.

Twitter開発者画面でTwitter API v2を使用する目的を選択

v1.1の時にも使用目的を教えろ(英語で、かつお前の言葉でな)みたいなのがありましたが、それに比べれば楽になったなと思っていたら、やっぱりプロジェクトの概要を書いてくれとの画面が続いて現れました。

This info is just for us, here at Twitter. It’ll help us create better developer experiences down the road.

Twitter開発者画面でTwitter API v2用のプロジェクト概要を記載

日本語で書いたらNGにされそうなので、検索されたキーワードに関連するツイートを取得してサイトに表示する、みたいなことを英語で書いておきました。

Twitter API v2のAppをセットアップ

やっとAppの設定画面になりました。見ると、「既存のアプリを追加するか、新しいアプリを作成します。」といった選択ボタンがありますが、新しいAppの作成ボタンがグレーアウトされていました。

Twitter開発者画面でTwitter API v2用のAppを作成

横の?にカーソルを合わせるとポップアップでこんなことが書かれてました。

You can’t create a new App.
because you’ve reach the max.
number allowed.
To create a new App, you’ll need to delete one from the Projects & Apps Overview page.

イマイチよく分からないですが、今私が作れるAppの数は1個らしくて、まだ動き続けているv1.1時代のAppもそのカウントに入っていることが原因のようです。

ということで、v1.1時代に作った動き続けているAppを紐付けることにします。

作成したプロジェクトにv1.1時代のAppを追加

作成したプロジェクトにアプリを追加すると、Twitter API v2とv1.1のキーとして使えるよと、嬉しいことが書かれていました。キー一つで使いまわせるなら楽で良さそうです。

Pick an App to add to your Project.
The App you choose will gain v2 access and retain v1.1 access.

Twitter開発者画面でTwitter API v2用のAppに既存のv1.1のAppを紐付け

先に進んでいくと、「Choose an App environment(App環境を選択)」といった画面が現れ、「Development」が選択されていたので、そのまま先に進みます。

Development
For new work and in progress features

Twitter開発者画面でTwitter API v2用のAppの開発環境を選択

無事、作成したプロジェクトにv1.1のAppを紐付けることができたようです。

Twitter開発者画面でTwitter API v2用のAppの設定が完了

新たに追加したAppはv1.1とv2に対応

画面を見ると、プロジェクトの配下にAppが配置されていました。

プロジェクト名
 └ App名

早速その詳細を見てみます。すると、v1.1 ACCESS/v2 ACCESSとの表示がしっかりありました。イイ感じです。

Twitter API v2用AppはTwitter API v1.1とv2の両方に対応

Twitter API v2はBearer Token認証にも対応

Twitter API v2ではBearer Token(アクセストークン認証)も使えるようになっているので、v1.1ではなかったBearer Tokenのキーの項目が新たに置かれていました。「Generated June 5, 2021」とありますが、v1.1キーの時代にはなかったので単にApp作成日付を引っ張っただけのようです。

Twitter API v2用AppはBearer Token認証にも対応

設定変更中、動かし続けているAPIアクセスに影響がなかったかが心配になりましたが、10分置きにcronで取得していたトレンドデータも取り続けることができていました。

v1.1時代のAppがSUSPENDEDに

v1.1時代のキーをv1.1 ACCESS/v2 ACCESSの両方へと接続可能なキーにもできて安心していた数日後、管理画面を見てみるとそのAppに警告がでていました

詳細を見ると、赤字の見覚えのある警告文が表示されています。どうやら前回v1.1のキーが「SUSPENDED」になった時と同じ状況になっているようです。

Twitter API v2用として設定したAppも停止となる

無料利用はもうダメなのかー

とは思ったものの、どうしようもないので、諦めてAppを削除することにしました。削除してみると警告も消えてきれいな画面になりました。

Twitter API v2用に設定したAppを削除

プロジェクトにAppを新規追加する

真ん中に「+Add App」ボタンがあるので、これを押して先に進んでみると、なんだか見覚えのある画面がまた出ました。「Development」が選択されていたので、そのまま先に進みます。

Twitter API v2用にAppを新規作成する

Appの名前を新たに設定

Appの新規作成ということで、名前はまだないのでAppに名前を設定します。

Twitter API v2用に新規作成するAppに名前を付ける

Twitter API v2用Appの作成完了

すると、あっさり新たなAppを作成することができ、APIキーも手に入れることができました。

Twitter API v2用の新規Appを作成完了

新しいAppは今のところ問題ない

プロジェクトにv1.1時代のAppを紐付けたら、すぐに「SUSPENDED」となりましたが、新しく作ったAppは今のところ2週間以上正常に稼働を続けています。

管理画面を見ると、Twitter v2のELEVATED(v1.1とv2の両方にアクセス可能)設定になっているようです。ツイートの取得は、最大200万ツイート/月まで無料でアクセスできるらしく、今月は200万ツイートのうち、22万ツイートをもう取ってるよとの表示もあります。

実は、新しくTwitter API v2用のAppを作成したタイミングで、Twitter API v2にSearch Tweetsというツイート検索用のエンドポイントがあったので、各サイトのツイート検索はv2のエンドポイントから取るよう変えていました

Twitter API v2のSearch Tweets

https://developer.twitter.com/en/docs/twitter-api/tweets/search/introduction

ダッシュボードに表示されているTwitter APIのカウントは、新しいv2アクセスのみ対応していているらしいので、ダッシュボードに表示されていた「228,434 Tweets pulled of 2,000,000」は、今月にv2エンドポイントで検索して取ったツイートの数を表示しているみたいです。

v1.1のエンドポイントもまだ残っている

ちなみに、「ツイータン」という趣味サイトで使っているTwitter API v1.1のエンドポイント「trends/place」はまだ生き残っているので、新しく作成したAppを使い、データを取り続けることができています。

Twitter API v1.1のGET trends/place

https://developer.twitter.com/en/docs/twitter-api/v1/trends/trends-for-location/api-reference/get-trends-place

Twitter APIの状況まとめ

今年に入ってからTwitter APIの流れと、Twitter側がTwitter API v1.1時代に作成されたキーを消滅させつつある状況をご紹介しました。

本当はTwitter APIのv1.1を一気に切り捨てて、v2に切り替えしたかったのかもしれないですが、v2のエンドポイント開発も追いついていないので、v1.1時代のエンドポイントや、Twitter API v2(+v1.1)の古いアクセスレベルを残しつつ、裏で大急ぎで開発しているのかもしれません。

とはいえ、2023年3月30日に、Standard (v1.1)、Essential (v2)、 Elevated (v2)のアクセスレベルも廃止するとは言っていたので、いずれ無料のアクセスレベルではちょっとしたテストにしか使えないような状況になるのかもしれません。ホントTwitter APIは凄い安定して動いてくれていたので、残念でなりません。

この先どうなるのかも分かりませんが、今日までに「ツイータン」用に取り続けたトレンドデータは950万レコードぐらいになっていたので、1000万レコード貯まるまでは動き続けてくれたらいいなと思います。