今回は、X(旧ツイッター)のAPIとGAS(Google Apps Script)を利用して、ポストを自動投稿するツールの作成方法をご紹介します。
このツールは、Googleスプレッドシートに書いたメッセージを定期的に自動投稿したい方や、シンプルなシステムを初めて構築する初心者の方に向けた内容です。
ツール開発が初めての方にもわかりやすいよう、ステップごとに詳細な解説とサンプルコードを提供しています。
手動で行うと時間がかかる投稿作業を自動化し、効率的にSNSを活用するためのスキルを身につけましょう。
- 今回の完成形:スプレッドシートからX(旧Twitter)へ自動投稿!
- X(旧ツイッター)のAPIを利用すれば自動的にツイートが可能!
- GASで定期ツイートツールを作ってみよう
- X APIの取得手順
- 認証用ライブラリ(OAuth2)を追加する
- スクリプトを作成する
- GAS×X(旧Twitter)の初回認証を行う方法
- 動作確認
- よくあるエラーと対処法
- 「Denied.」と表示される場合
- 「コールバックURLが無効」と出る場合
- 「You weren’t able to give access to the App.」と出る場合
- 「getService is not defined」と出る場合
- 「You are not allowed to create a Tweet with duplicate content.」と出る場合
- 「Request failed for https://api.twitter.com returned code 401」
- 「このアプリはGoogleで確認されていません」と出る場合
- 「Exceeded maximum execution time」エラーが出る場合
- Pay-Per-Useのクレジットが切れた場合
- よくある質問(Q&A)
- まとめ
今回の完成形:スプレッドシートからX(旧Twitter)へ自動投稿!
本記事で作成するツールの完成形はこちらです。

Googleスプレッドシートに投稿したいメッセージを入力し、GAS(Google Apps Script)のスクリプトを実行すると…
- 自動でX(旧ツイッター)にポスト!
- 履歴シートにも投稿記録がしっかり残る!
毎日の投稿作業がたったの数分で完了する、完全自動化SNS運用の第一歩です。
X(旧ツイッター)のAPIを利用すれば自動的にツイートが可能!

X(旧ツイッター)への投稿を自動化したい場合は、Xが提供しているAPIの利用がおすすめです。
X APIを使えば、プログラムからポストを自動投稿できるようになります。
2026年現在:新規利用はPay-Per-Use一択
Pay-Per-Use(従量課金)とは?
Pay-Per-Useは、2026年2月に正式リリースされた新しい料金体系です。
AWSやGoogle Cloudと同様に、使った分だけクレジットが消費される仕組みです。
月額固定費が不要なため、投稿頻度が少ない個人開発者や副業ライターにとって特に使いやすいプランです。
- Developer Consoleでクレジットを事前チャージ
- API操作ごとにクレジットが消費される
- 残高が少なくなったら自動チャージ設定も可能
- 月ごとの上限(スペンディングキャップ)を設定して使いすぎ防止
- 月間2,000,000ポスト読み取りまで対応
なお、以前からBasic・Proプランを利用していた既存ユーザーは、Developer ConsoleからPay-Per-Useへの切り替えも可能です。
GASで定期ツイートツールを作ってみよう

今回はGAS(Google Apps Script)とX(旧ツイッター)のAPIを活用して自動投稿ツールを作っていきます。
今回開発するツールは、以下のような内容です。
- スプレッドシートに記載されている文章をポストする。
- 複数の文章が記入されている場合は、ランダムに1つ選んで投稿する。
- 投稿履歴を履歴シートに記録する。
まずは、事前準備としてスプレッドシートの作成とAPIの取得を行います。
事前準備:自動ポスト用スプレッドシートを作成
投稿メッセージを記入したり、投稿内容を表示するためのスプレッドシートを作成していきます。
Googleドライブにアクセス
ウェブブラウザからGoogleドライブ(https://www.google.com/intl/ja_jp/drive/)にアクセス。
「ドライブを開く」を押します。

ログインしていない場合は、Googleアカウントでログインしてください。

ドライブを開くと画像のような画面になります。

スプレッドシート新規作成
新規ボタンをクリックしてスプレッドシートを選択します。

ファイル名は「自動ポスト用スプレッドシート」、シート名は「投稿メッセージリスト」と「履歴」に設定しておきましょう。

Xのアカウントを事前に用意
APIの申請にはX(旧Twitter)のアカウントが必要です。
まだアカウントをお持ちでない方は、事前に作成しておきましょう。
ログイン状態でDeveloper Consoleにアクセスすることで、APIの申請がスムーズに行えます。
X APIの取得手順

以前からDeveloper Consoleを使っていた方へ
すでにDeveloper Consoleのアカウントをお持ちの場合、アクセスすると以下のような画面が表示されることがあります。

「構築を開始する」をクリックすると、「プロジェクトを作成」が表示されます。
以下のように入力して「作成」をクリックしてください。
- プロジェクト名:Default Project(そのままでOK)
- 説明:空欄でOK
- ユースケース:「Making a bot」を選択

作成後はそのままダッシュボードに進み、以降の手順と同様にPay-Per-Use申請・クレジット購入を行ってください。
STEP①:Developer ConsoleでPay-Per-Useに申請する
まずXアカウントでログインした状態で、Developer Consoleにアクセスします。
「今起きていることにアクセスする」または「Pay Per Use」の申請フォームが表示されます。 以下の内容を入力してください。
利用目的テキスト(英語250文字以上):
|
1 |
I will use the X API to automatically post tweets using Google Apps Script (GAS) and Google Spreadsheets. Specifically, I will randomly select one message from a spreadsheet and post it automatically once a day. This bot only uses the tweet posting feature and does not perform retweets, likes, or any data analysis. I will not resell or redistribute any data obtained through the API. |
※日本語訳: Google Apps Script(GAS)とGoogleスプレッドシートを使って、Xに自動投稿するために利用します。スプレッドシートに保存したメッセージからランダムに1つ選び、1日1回自動投稿するBOTです。投稿機能のみを使用し、リツイート・いいね・データ分析は行いません。
チェックボックス:3つすべてに✅を入れる

入力が完了したら「Submit」または「次へ」ボタンを押して申請完了です。
STEP②:クレジットを購入する
申請が完了すると、Developer Consoleのダッシュボードが表示されます。

「請求書作成」→「クレジット」をクリックして管理画面を表示させましょう。

「クレジットを購入する」ボタンをクリックして、クレジットを購入します。

$5から購入可能です。個人の自動投稿(1日1回)程度であれば$5〜$25で数ヶ月運用できます。
クレジット支払いのためクレジットカードを用意しておきましょう。
支払いが完了すると成功画面が表示されます。

「支出上限を管理」から月の最大利用額を設定できます。
誤って大量APIコールが発生した場合でも、設定金額以上は課金されません。

STEP③:アプリを作成してClient IDを取得する
Pay-Per-Use登録が完了すると、左メニューの「アプリ」にアプリが自動生成されています。

アプリ名をクリックすると右側に詳細パネルが表示されます。「ユーザー認証設定」の「セットアップ」ボタンをクリックします。

認証設定の内容
アプリの権限を設定していきます。
アプリの権限:「読み取りと書き込み」を選択

アプリの種類:「ウェブアプリ、自動化アプリまたはボット」を選択

コールバックURI:
|
1 |
https://script.google.com/macros/d/【GASのスクリプトID】/usercallback |
※スクリプトIDはGASの「プロジェクトの設定」から確認できます
ウェブサイトURL:自分のサイトURL、またはhttps://x.com/【あなたのアカウント名】でもOK

「変更を保存する」をクリックすると、Client IDとClient Secretが表示されます。 

認証用ライブラリ(OAuth2)を追加する
X(旧ツイッター)のAPIを利用するためには、OAuth2という認証用のライブラリを追加する必要があります。
先程作成したGoogleスプレッドシートにて「拡張機能」→「Apps Script」をクリックします。

Apps Script画面に切り替わります。

画面左のサイドメニューから「ライブラリ」を押します。

「スクリプトID」に以下のIDを入力します。
|
1 |
1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF |

「検索」を押してOAuth2が検索できたら「追加」を押します。

ライブラリにOAuth2が追加されていれば成功です。

「承認が必要です」が出たら承認しましょう。
スクリプトを作成する
Google Apps Scriptにプログラムを記述していきます。
先程のApps Script画面で、プロジェクト名を「sendTweet」に変更しておきましょう。

今回作成するプログラムの完成形は以下になります。
APIキー(Client ID / Client Secret)のコードへの反映方法
Developer Consoleで取得した Client ID と Client Secret は、スクリプト内で次のように記述します。スクリプト内で以下の2行を探してください。
|
1 2 3 4 |
const CLIENT_ID = 'YOUR_CLIENT_ID'; const CLIENT_SECRET = 'YOUR_CLIENT_SECRET'; |
取得した値を以下のように置き換えてください。
|
1 2 3 4 |
const CLIENT_ID = 'abcd1234...(あなたのClient ID)'; const CLIENT_SECRET = 'efgh5678...(あなたのClient Secret)'; |
GAS×X(旧Twitter)の初回認証を行う方法
GASでX(旧Twitter)のAPIを使うには、初回に一度だけ認証処理が必要です。
STEP①:認証スクリプトを実行
main()関数を選択して実行します。
STEP②:表示された認証用URLをコピー
スクリプトを実行すると、
ログに「Open the following URL and re-run the script: https://twitter.com/…」で始まるURLが表示されます。

STEP③:ブラウザでURLにアクセスし、ログイン認証
コピーしたURLをブラウザに貼り付けてアクセスすると、X(旧Twitter)のログイン画面が表示されます。
ログインすると「アプリがアクセスを求めています」という確認画面が表示されます。

✅ 「アプリにアクセスを許可」をクリック
STEP④:「Success!」と表示されれば認証完了

認証に失敗する場合の対処法
- Denied. → CLIENT_ID / CLIENT_SECRETが正しいか確認
- Callback URL が無効 → Apps ScriptのスクリプトIDを使ったURLになっているか確認
- Something went wrong → 別ブラウザやシークレットウィンドウで再ログインして試す
動作確認
実際に完成したツールを使ってみましょう。
スプレッドシートの「投稿メッセージリスト」シートに投稿したいメッセージを書き込みます。

実行する関数を「sendTweet」に選択してスクリプト実行ボタンをクリック。

X(旧ツイッター)にポストが投稿されれば成功です。

投稿されたら履歴シートに自動で記録されます。

トリガー追加
作成したスクリプトを定期的に実行されるようにトリガーを設定します。
今回は、1日1回ポストが行われるようにします。
AppScript画面にて以下の操作を行います。
トリガーボタンをクリック。

「トリガーを追加」をクリック。

以下の設定でトリガーを設定して「保存」をクリック。
設定内容
実行する関数を選択:sendTweet
実行するデプロイを選択:Head
イベントのソースを選択:時間主導型
時間ベースのトリガーのタイプを選択:日付ベースのタイマー
時刻を選択:任意の時刻

画像では、午前10時〜11時の間に実行する設定を行っています。
- 毎日投稿したい場合:「日付ベースのタイマー」を選択して時間帯を指定
- 週1回だけ投稿したい場合:「週ベースのタイマー」を選択
- テスト用に毎分実行したい場合:「分ベースのタイマー」→「1分おき」を選択(テスト後は必ず解除!)
自作したスクリプトにトリガーを設定する場合は、セキュリティ警告が出ることがあります。許可して進めましょう。
一覧に設定したトリガーが表示されればトリガー設定完了です。

設定した時刻になると自動でスプレッドシートからメッセージが選ばれ、Xに投稿されます。
その場合は「詳細」→「安全ではないページに移動」をクリックして続行してください。
自分自身で作成したスクリプトであれば問題ありません。参考:GAS実行時「承認が必要です」「認証が必要です」「このアプリはGoogleで確認されていません」の対策まとめ
よくあるエラーと対処法
よくあるエラーと解決策をまとめました。
「Denied.」と表示される場合
Client IDやClient Secretが間違っている可能性があります。再度正しい値を貼り直してください。
また、コピー時にスペースや改行が混入しているケースもよくあります。値の前後を確認しましょう。
「コールバックURLが無効」と出る場合
Developer Console上の「Callback URL」に、Apps ScriptのスクリプトIDを使ったURLが正しく設定されているか確認してください。
スペルミスや不要な空白が入っていないかも確認してください。スプレッドシートIDをスクリプトIDと間違えていないかもチェックポイントです。
「You weren’t able to give access to the App.」と出る場合
X側での認可設定に問題があるか、複数のアプリで干渉している可能性があります。別ブラウザやシークレットモードでもう一度試すと解決することがあります。
「getService is not defined」と出る場合
getService()関数がスクリプト内に存在していないか、スペルミスがある可能性があります。ファイル内に関数が正しく定義されているか、記述順に問題がないかを確認してください。
「You are not allowed to create a Tweet with duplicate content.」と出る場合
Xでは、同一の投稿内容を繰り返すことが禁止されています。ランダムな一文や日時を追加するなど、内容を微調整してください。本記事のスクリプトでは投稿時間を文末に付加することで対応しています。
「Request failed for https://api.twitter.com returned code 401」
アクセストークンの有効期限切れや認証失敗が原因です。main()を再実行して新しいURLから認証しなおしてください。
また、PropertiesService.getUserProperties().deleteAllProperties()を実行して認証情報をクリアすると改善する場合があります。
「このアプリはGoogleで確認されていません」と出る場合
GAS初回実行時にGoogleが警告を表示することがあります。「詳細」→「安全ではないページに移動」をクリックし、実行を許可してください。
自分自身で作成したスクリプトであれば問題ありません。
「Exceeded maximum execution time」エラーが出る場合
スクリプトの処理が6分を超えている場合に発生します。スプレッドシートのデータ量が多すぎないかを確認し、不要な処理を削除・効率化してください。
Pay-Per-Useのクレジットが切れた場合
クレジット残高がゼロになると、APIリクエストがブロックされます。Developer Consoleで残高を確認し、クレジットを追加チャージしてください。
自動チャージ(Auto-recharge)を設定しておくと、残高不足による突然のエラーを防ぐことができます。
よくある質問(Q&A)
Q. Pay-Per-UseとBasicプランはどちらがお得?
A. 投稿頻度が少ない場合はPay-Per-Useがおすすめです。
月数回〜数十回程度の投稿であれば、月額200ドルのBasicプランを契約するよりも、使った分だけ支払うPay-Per-Useの方がコストを抑えられます。
一方、毎日複数回投稿する場合や安定したコスト管理をしたい場合はBasicプランが向いています。
Q. Freeプランでこのツールは使えますか?
A. 2026年3月現在、Freeプランへの新規申し込みはできません。
新規でX APIを利用する場合はPay-Per-Useのみとなります。以前からFreeプランを利用していた既存ユーザーは引き続き利用可能ですが、読み取り機能は使えず投稿のみの対応です。
Q. 認証は毎回必要ですか?
A. 初回のみです。一度認証が完了すれば、トークンはGASのプロパティに保存されるため、次回以降は不要です。
ただし、認証情報をリセット(deleteAllProperties)した場合や、アプリの権限を取り消した場合は再認証が必要です。
Q. スプレッドシートのメッセージは何件まで登録できますか?
A. スプレッドシートの仕様上、最大数百万行まで登録可能です。実用上は上限を気にせず使えます。
ただしAPIの投稿上限(プランによって異なる)に注意して運用してください。
Q. 同じメッセージを2回投稿するとエラーになります
A. X APIの仕様で、同一内容の連続投稿はブロックされます。
本記事のスクリプトでは投稿時間を文末に付加することで回避しています。それでもエラーが出る場合は、メッセージのバリエーションを増やすか、ランダムな絵文字や番号を末尾に追加する方法が有効です。
まとめ

今回は、GASとX(旧ツイッター)を連携して定期的に自動ポストを行う方法をご紹介しました。
- X(旧ツイッター)に自動投稿させるにはAPIの取得が必要
- 2026年2月より「Pay-Per-Use(従量課金)」プランが正式提供開始。新規利用はPay-Per-Use一択
- X APIとGASを連携することで、簡単に定期自動投稿ツールを作成できる
- トリガー設定で投稿タイミングを自由にカスタマイズ可能
- エラーが出たら、認証情報・APIキー・コールバックURLの3点を最初に確認しよう
X APIとGASの組み合わせは、個人での情報発信や副業アカウントの運用自動化にとても効果的です。
ぜひ今回のツールをベースに、あなたに最適な自動
|
1 |
当記事は従量課金で実装しています。 |
投稿環境を作り上げてみてください!
なお、X APIの料金体系や仕様は今後も変更される可能性があります。利用の際は公式ドキュメントで最新情報をご確認ください。



