Twitter API v2(X API Free)の使い方・移行(2025年)【GAS】

Twitter API v2(X API Free)の覚書です。少し前に仕様が変わったためそちらも踏まえて書いておきます。

# Twitter API v2(X API Free)の使い方・移行(2024年)

まずはX Developer Platform（Twitter Developer Platform）の登録方法からです。

[X（Twitter）Developer Portal](https://developer.twitter.com/ja)

1. 画面右上の**開発者ポータル**をクリックします。
1. ログインしていない場合は、X(Twitter)でログインします。

:::note info
以前、Twitter APIを利用したことがある方は、画面右上の**開発者ポータル**を選択するとそのまま管理画面に移行します。一部の手順を飛ばせます。
:::

画面下の**Sign up for Free Account**を選びます。

![Twitter API v2(X API Free)の使い方・移行(2024年)twitterapi01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2372340/6b524db3-f5af-718b-f669-fcc34cdb6605.png)

画面が変わると、いくつかの項目が英語で表示されます。必要な事項を入力し、登録を完了します。

各項目を順番に見ていきましょう。

![twitterapi02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2372340/284e5d0c-5078-9297-8cbc-ca313618465e.png)

**Describe all of your use cases of Twitter’s data and API**という項目は、X(Twitter)のAPIとデータの全ての使用事例を説明してください、という意味です。

X(Twitter)社は昔から日本語対応はやや中途半端な形であるため、またフォーム自体も英語のため、どちらかといえば、英語で記載することをおすすめします。

X(Twitter) Developer Portalの画面は、Chromeで右クリックからも翻訳できます。

**右クリック > 日本語に翻訳**

以下に申請例を示します。

I am a developer specializing in programming and design, and also a blogger focusing on app development. I am currently crafting a tool that automatically posts relevant tips and blog content to X. These posts, comprising text, images, and related blog URLs, are designed to adhere to X’s policies and provide value to my followers.

日本語訳は以下の通りです。

私はプログラミングとデザインをする開発者であり、アプリ開発のブロガーでもあります。現在、ブログの記事やお役立ち情報をシェアするツールを開発しています。これらの投稿は、テキスト、画像、そして関連するブログのURLを含むもので、Xの規約に従うことを心がけており、私のフォロワーにとって価値ある情報を提供することを目指しています。

英語が苦手な方は、申請文は日本語で書いたのち、DeepLやOpenAIのChatGPTに翻訳してもらうとよいでしょう。

無料で翻訳するなら、次の2サイトがおすすめです。

1. [DeepL](https://www.deepl.com/ja/translator)
1. [OpenAI](https://openai.com/)

慣れていない方は、1つの文を長文にせず、翻訳しやすい日本語を使うとよいです。

例文の専門ジャンルを置き換えたり、複数人で運営している場合、IをWeにすると対応できます。

もちろん参考にしてもらっても結構ですが、それほど難しくないため、なるべくオリジナルの文章で申請するとよいでしょう。

次の3つはチェックボックスをチェックするだけです。

- **You understand that you may not resell anything you receive via the Twitter APIs** - Twitter APIで受け取ったものを再販してはならないことを理解しています
- **You understand your Developer account may be terminated if you violate the Developer Agreement or any of the Incorporated Developer Terms** - デベロッパー契約または任意の開発者規約を違反した場合、開発者アカウントが終了することを理解しています
- **You accept the Terms & Conditions** - 利用規約に同意します

最後に**Submit**ボタンをおします。

## 7つのTwitter API v2(X API Free)キーをゲットしよう!

管理画面に入ると、プロジェクトとアプリが自動生成されます。

:::note info
昔から使っている方向けにお知らせとなりますが、**以前はプロジェクトとアプリを作成する流れが必要でしたが、面倒が手続きが簡略化されたようです。より簡単になりました。**
:::

自動生成されたプロジェクトとアプリは基本的にそのまま使って問題ありません。

:::note info
(追記)昔からX(Twitter) APIを使っている方向けにお知らせとなりますが、以前は7つのAPIキーを集めなければなりませんでしたが、X API v2に完全移行ができるようになったため、現在はClient IDとClient Secretの2つだけ使用します。v1.1 media uploadは2025/4/30で廃止です。
:::

- Consumer API Key:
- Consumer API Secret:
- Client ID:
- Client Secret:
- Bearer Token:
- Access Token:
- Access Token Secret:

コールバックURLを指定する認証の設定をすると、APIキーを2つ入手できます。

残りの5つは簡単に生成できますので、認証の設定さえ終わればすぐに7つのキーが集まります。

それでは、キーを探しましょう！



## X(Twitter) Developer Portalで認証の設定

X(Twitter) Developer Portalで認証の設定を行います。途中でコールバックURLが必要なります。

まず、**X(Twitter) Developer Portal**を開きます。

[X(Twitter) Developer Portal](https://developer.twitter.com/en/portal/dashboard)

画面左側にあるあなたの**アプリ名(xxxxxxxxxxxxxxxxxxxxAccountname)**をクリックします。

**画面左の[xxxxxxxxxxxxxxxxxxxxAccountname] > User authentication settingsの[Set up]**

その後、次の項目を設定します。

![twitterapi09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2372340/5ea69969-e858-df90-fa91-0cc4f9ca0ec2.png)

- **Read and write**: ポストする場合、書き込みが必要なため、Read and Writeを選択します。
- **Web App, Automated App or Bot**: 対象のアプリケーションタイプを選択します。Webアプリの場合は、Web App, Automated App or Botです。
- **Callback URI / Redirect URL**: コールバックURLを入力します(取得方法は次の見出しにまとめました)。
- **Website URL**: 自身のウェブサイトのURLを入力します（なければ、X(Twitter)のURLでも構いません）。
- 他の項目は空欄のままでも問題ありません。

![twitterapi10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2372340/bfe9978b-2135-07de-ffb7-4d2b52b5a385.png)

設定が終わったら次の手順で進みます。

**Save > Yes**

すると、OAuth 2.0 クライアント ID とクライアント シークレットが表示されます。これらは一度しか表示されないため、メモ帳などに記録しておきます。

次に、**Done  > Yes, I saved it** を選択します。

さらに、**Keys and tokens**のタブを見ると、OAuth 2.0 Client ID and Client Secretという項目があり、OAuth 2.0 クライアント ID とクライアント シークレットが表示されます。

**Client ID**はこの画面から確認できます。変更したい場合は、アプリを作り直す必要があります。**Client Secret**は**Regenerate**ボタンを押すと再生成できます。



## GASでコールバックURLの取得とURLの編集

コールバックURLはユーザーごとにユニークなIDとなります。

Google Apps Script（GAS）とスプレッドシートの例で説明します。

このURLを取得するには、スプレッドシートのコピーを作成し、スクリプトエディタを開く必要があります。

まず、次の手順でGoogle Apps Script(GAS)のURLを開きます。

**拡張機能 > Apps Script**

GASのURLはテキストエディタなどに一時的にコピーしておきます。

次に表示されるURLからID部分のみをドラッグ＆ドロップでコピーします。以下はその例です。

- トップページのアドレス：`https://script.google.com/u/0/home/projects/[ID]`
- エディタ画面のアドレス：`https://script.google.com/u/0/home/projects/[ID]/edit`

コールバック用のURLは次の形式になるので、上記でコピーしたID部分を以下の[ID]の部分にペーストして置換します。

`https://script.google.com/macros/d/[ID]/usercallback`

置換したURLをX(Twitter)ポータルの設定画面に入力します。



# Twitter API v2(X API Free)の料金(2025年)

X(Twitter API)の料金もまとめておきます。

- Freeプラン：無料。ツイートの投稿、自己アカウントの情報取得、Twitterログインが可能。月間ツイート投稿1,500件→500件（1日のAPI経由投稿数の上限は50件→17件）、アプリのID数：1件まで。
- Basicプラン：月額100ドル→月額200ドル（約30,000円）。月間ツイート投稿3,000件（書き込み）、月間10,000件のツイート取得上限（読み込み）、アプリのID数：2件まで。
- Proプラン：月額5000ドル（約750,000円）。月間ツイート投稿の上限数：アプリあたりの場合月間300,000件、月間1,000,000件のツイート取得上限、アプリのID数：3件まで.
- Enterpriseプラン：ビジネスや大規模なサービス開発向け。価格は非公開だがニュースサイトや実際に契約している人などによるとEnterprise向けプランの最も安価なパッケージは月額42,000ドル（約6,300,000円）で、最も高額なパッケージ「Large Package」は月額210,000ドル（約31,500,000円）。

https://developer.x.com/en/docs/x-api

2024年10月24日に変更がありましたが、一部公式ドキュメントの情報が更新されていないため注意したいです。上のURLは正しいけど、下は古いまま。

https://developer.twitter.com/en/docs/twitter-api/getting-started/about-twitter-api

*1ドル150円で計算

有料化はある程度は理解できるけど、要望としては読み込みができるFreeとBasicの中割プラン、BasicとProの中割プランがないと段階的な運用は厳しいと感じましたね。開発者の参入障壁になり、逆に開発者のコミュニティが育たず、X(Twitter)が廃れるのではと。もう少しバランスがよいといいなという気がしますね。

## 個人開発

とりあえず、Twitter API freeを使って個人開発してみました。興味あればご覧ください。

https://note.com/noteebook/n/n8b50e8f7674a

読み込みも使えると他にもいろいろとできるのですけど、ユーザーにAPIを各々取得してもらうタイプだと、Basicプランでは提供しずらい気がしました。ケーススタディとして。

今後のX(Twitter)の改善にしたいですかね。