0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

X(twitter) APIで遊んでみる2025年版

Posted at

はじめに

こちらの記事は」X API(twitter API)で遊んでみたという記事になります
遊んでみたといっても、かなり昔に利用していたこともあるので最近はどのような更新がされているか、どんなAPIが存在しているかなどを中心に調べてみた内容をまとめようと思います

まとめた内容

X API v2というものが出来上がっていた

こちらはタイトルの通り、以前使用できていたv1は廃止されてv2への移行が促されていました
(廃止されたといっても一部の基本的な機能はまだ使用できそうな雰囲気もありました)
これは以前作成していたアプリ、プロジェクトが全く動かなくなっていそうですね

後半でマイグレーションを行ってみようと思います

v1と同じようなAPI機能を使用したい場合、お金がかかる

これも結構な痛手です
v1の時は特に料金などはかからなかったはずですが、、

プランとしては「Pro」「Basic」「Free」の3つありました
最低でも月額$175払わなければこれまで使用していた機能を完全に利用するということはできなさそうです

実際に何のAPIは使えるかをあとで確認してみます

スクリーンショット 2025-03-15 16.08.40.png

ということで

軽く調べた限りでも以下の2点を先に調べなければならない状況なので、ここからはそちらを調べていきます

  1. v1からv2への移行
  2. FreeプランではどのようなAPIが利用可能なのか

1. v1からv2への移行

当初はアクセスキーやアプリの新規作成などが必要かと思っていましたが、認証方式がBearer Token方式になっておりました

Bearer Tokenの発行についてはアプリ・プロジェクト管理画面から確認することができました
下記画像の「Bearer Token」というところですね
忘れずメモしておきましょう(再作成や無効化できますが忘れると大変なので)

スクリーンショット 2025-03-15 16.25.14.png

次にメモしたトークンを使用して認証を試みてみます
認証については以下のAPIのようです

curl 'https://api.x.com/2/usage/tweets' --header 'Authorization: Bearer XXXXX'

実行してみると以下の結果に
なにやらリクエストが通っていないような感じですね、403です

{
  "client_id": "xxxxxxx",
  "detail": "When authenticating requests to the Twitter API v2 endpoints, you must use keys and tokens from a Twitter developer App that is attached to a Project. You can create a project via the developer portal.",
  "registration_url": "https://developer.twitter.com/en/docs/projects/overview",
  "title": "Client Forbidden",
  "required_enrollment": "Appropriate Level of API Access",
  "reason": "client-not-enrolled",
  "type": "https://api.twitter.com/2/problems/client-forbidden"
}

そこでよくよく調べてみるとプロジェクトの設定が消えている or 新規で作成しないといけない模様でした
参考にさせていただいた内容はこちら

プロジェクトの設定を一通り完了させた後に再度curlでAPIを実行すると
今度はリファレンスにある通りのレスポンスが確認できるようになりました!!

{
  "data": {
    "cap_reset_day": 19,
    "project_cap": "xxx",
    "project_id": "1234567890",
    "project_usage": "0"
  }
}

ここまで確認できれば、次に書こうとしているAPIを試してみるフェーズに進めると思います

2. FreeプランではどのようなAPIが利用可能なのか

ということでここからは実際にAPIを実行してみたいと思います

postのidから特定のpostの内容を取得するエンドポイントを実行してみます

curl "https://api.twitter.com/2/tweets?ids={取得したいpostのid}" -H "Authorization: Bearer XXXXX"

例えばで取得した内容はこちらになります

{
  "data": [
    {
      "text": "breakfast snack wraps when? https://t.co/sfxQNidl1H",
      "edit_history_tweet_ids": [
        "1895134475698262296"
      ],
      "id": "1895134475698262296"
    }
  ]
}

取れないと思っていましたが取れましたね、、
よくよく確認してみると先ほど貼ったプランの画像の下のほうにリクエストできるものとレートリミット書いてありました

スクリーンショット 2025-03-15 17.16.17.png

先ほど実行したエンドポイントなどはFreeプランだとレートリミットが1リクエスト/15分という何ともシビアな設定になっていました

昔は3,000件ぐらい取れていた気もします

APIを調べるのは以下のリンクで生成してくれるのでおすすめかと思います
https://developer.x.com/apitools/api

「GET /2/tweets/search/all」や「GET /2/tweets/search/stream」に❌がついていたのでこういうものは使えなくなりましたということですね

おわりに

ということで、X APIについて調べてみたという記事になります
v1がいつの間にか廃止されていたり、利用プランが課金になっていたり、レートリミットが厳しくなっていたりと段々と肩身が狭くなっているのを感じました

また、普段から敏感になっておかないとAPIの進化についていけなくなることも実感しましたので、これからはその辺りの情報もキャッチできるように工夫が必要だなと思いました

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?