技術

Twitter APIの話

 初めまして、開発経験2年程度のぺーぺーエンジニア、開発部のJSです。
最近、X(旧Twitter)のAPIを使用する機会があり、その実装においていくつか苦戦したポイントがありました。以下にその内容を紹介いたします。

その前に、 Twitter APIとは

 APIを利用することで、外部アプリケーションからポストの内容や情報を取得でき、特定のタグを付けた投稿を検索することも可能です。さらに、外部アプリケーションを介してポストやリポストなどの操作も行えます。

1.古い情報は当てにならない。

 以前使用されていたTwitter API v1.1は既に廃止され、現在はv2を利用する必要があります。探している情報が見つかったとしても、v1.1の内容では役立たない可能性が高いです。最新の情報はv2に関するものであることを確認しましょう。
 Twitter APIに関する情報を検索する場合は、検索期間を最低でも1年に設定することをお勧めします。これにより、最新のAPIバージョンでの情報を得ることができ、古い情報や廃止されたバージョンのものを避けることができます。

2.APIの有料化

 無料プランは基本情報の取得と、ポストの投稿・削除のみです。
 リポストやリプライなどを外部アプリケーションで行いたい、v1.1と同じように使いたいという場合、ベーシックプラン(月額100ドル)の契約が必要です。
 さらに、有料プランでも以前のv1.1に比べてAPI制限が大幅に厳しくなっています。一番厄介なのは「15分の制限」です。特定のエンドポイント(たとえば特定のユーザーのツイート情報を取得する)が「15分に300回まで」から「15分に15回まで」と制限が改悪変更されました。
 特定のエンドポイントを短時間に複数回使用する場合は、APIの回数制限に気を付けましょう。

3.認証方法

 よし、有料APIを契約完了!Twitter APIを呼び出すアプリも決まった!あとは呼び出す処理を実装するだけだ! …そんな簡単なお話ではありませんでした。
 外部アプリケーションからいきなりAPIにこの情報がほしいという指示を出しても、そもそもお前だれ?状態になってしまいます。
 外部アプリケーションとAPIを認証(名刺交換のようなもの)が必要になります。認証作業を行うことで、セキュリティが確保され、正当な利用者であることが保証されるため重要な作業です。
 Twitter API v2の場合、データを取得する際は「OAuth 2.0 App-Only」をポストやリポストなどデータをXに書き込む際は「OAuth 2.0 Authorization Code Flow with PKCE」を使用してください。
 …?? 頭がパンク寸前でした。
【備忘録】Twitter API v2 OAuth2.0 コマンドプロンプトからTwitter を使ってみる
こちらの記事を参考にさせていただき、概要程度には理解することができました。

最後に

実際に触ってみてAPIの仕組みの難しさを体感することができました。ただ、Twitterを運用する方にとっては、とても便利なAPIであることは間違いないです。今後もTwitter APIと苦楽を共にしたいと思います。


文:開発部 JS