Twitter API 有料化
Twitter API は、そのほとんどが有料化されました。
ツイートの取得が可能な "Basic" アクセスは $100/月です。
無料の "Free" アクセスでは、ツイートの投稿しかできません。
以下の情報は、$100/月を支払う人のために残しておきます。
Twitter API
Twitter 社は多様な API を公開しており、ユーザが Twitter のページでできることは API でもほぼできるようになっている。
ただし、API の場合にはリクエスト数(頻度)の制限が厳しく、したいことが現実的に可能かどうか見極めが必要となる。
Twitter の API は仕様変更が多く、Webにある情報を参照する際には注意が必要である。
現在の API は API v2 であるが、多くの情報は v1.1 に対応したものである。
APIの種類と仕様
ライブラリを使う場合には API を直接叩くわけではないが、
パラメータの値の範囲など、API の仕様書を参照すべきことも多い。
- Twitter API v2 (twitter)
アクセスレベル:
- Essential: 基本レベル。登録が容易。API v1.1 は使えない。
- Elevated: 上級レベル。API v1.1 も使える。
- Academic Research: 研究用なので授業では使用できない。
→ 比較表
開発者アカウントを2021年11月15日より前に取得していた人は、
自動的に Elevated に変更されており、引き続き API v1.1 を利用することができる。
なお、API v2 を使い始める際には、新たに Project を作成しアプリを紐付ける必要がある。
API の形式は通常の REST の他に、リアルタイムのデータ取得が可能なストリーミング形式の API も提供されている。
留意事項
- リクエスト数の上限はリクエストの種類ごとに定められている。
例えばツイート検索では 180リクエスト/15分 (OAuth 2.0 Bearer Token で認証する場合は 450リクエスト/15分)。
なお、1回のリクエストで取得可能なツイート数は 100ツイートなので、1回の検索で数回のリクエストが必要になることもある。
- ツイート検索の対象は直近1週間のみである。
つまり Twitter の Webページで (手動で) 検索できるツイートが API では取得できない。
- ストリーミングで取得可能なツイート数には上限がある。アクセスレベルが Essential の場合は 50万ツイート/月。
- トレンドは API v1.1 でしか取得できない (API v2 でも提供予定であるが準備中)。
開発者登録とキーの発行
Twitter の API を使うには、まずアカウントを開発者として登録し、さらにアプリケーションを登録する。
- Step-by-step guide to making your first request to the new Twitter API v2 (Twitter)
- twitter に自分のアカウントでサインインしておく(電話番号の認証が済んでいる必要あり)
- 開発者アカウント(Essential)の登録をする。登録後、メールの認証がある。
- アプリの名前を決める (世界で唯一のものをつける)
- 「Get key」ボタンを押すと 3つのキーが発行されるのでコピーしておく。
- API Key
- API Key Secret
- Bearer Token
- ダッシュボードにアクセスしてみる。「Project 1」というプロジェクトが自動で生成され、先ほどのアプリが属している。
- 自分のタイムラインを取得するなどユーザ権限が必要な API を使用する場合には、
アプリ名の右にある鍵アイコンをクリックする。
Access Token and Secret の「Generate」ボタンを押すと 2つのキーが発行されるのでコピーしておく。
- Access Token
- Access Token Secret
なお、これらのキーは「Read Only」の権限で生成されている。
プログラミング
ライブラリの利用
Java から Twitter API を使う場合、直接利用するのではなく、クラスライブラリを介して使うのが便利である。
最近開発者アカウント(Essential)を作成した場合には API v2 しか使えないので、
API v2 に対応したライブラリを選択する必要がある。
以下のリストの先頭の twittered については、検索とタイムライン取得のサンプルプログラムを提供している。
専用のライブラリを使わずに Json を直接扱いたい場合には、公式のサンプルコードが参考になる。