【超有料級】Twitter APIでXに自動投稿する方法:スプレッドシート × GASで誰でも無料でできる!

当サイトはアフィリエイト広告を利用しています。

Twitter API × スプレッドシート × GAS(Google Apps Script)を使って、Xに自動投稿する方法を解説します!

誰でも無料でXに自動投稿ができる超有料級の情報です。

Twitter APIの開発アカウントを作成し、Freeプランを契約することで実現できます。

英語表示なのでとっつきにくいのですが、API取得と設定ができれば、後は投稿を自動化できますよ。

この自動投稿機能はテキストのみの投稿です。「画像付きはこちら」を使ってください。

Twitter API × スプレッドシート × GASを使った自動投稿について

このプログラムは、Google Apps Script(GAS)を使って、Googleスプレッドシートの内容をX(旧Twitter)に自動投稿する仕組みです。

スプレッドシートには、各行に日付(1〜31)とその日の投稿内容(朝・昼・夕・夜)を記載しておきます。

スクリプトを実行すると、その日の日時に合った投稿内容が自動でXに投稿されます。

1日に最大4回の投稿が可能で、以下の時間帯ごとに内容を切り替えられます(31日 × 4回 = 最大124投稿)。

  • 朝(5〜12時)
  • 昼(12〜15時)
  • 夕方(15〜18時)
  • 夜(18〜24時)

Xの投稿イメージはこちら。

実行に必要なもの一覧

X(旧Twitter)の自動投稿を実現するにあたり、下記のものが必要になります。

X DeveloperアカウントとTwitter APIの取得が一番大変だと思います。

  • Google関連
  • X(Twitter)関連
    • Xアカウント
    • X Developerアカウント → 発行方法こちらの記事を参照
    • Twitter API(キー、トークン)

大まかな作成手順

大まかな作成手順は以下のとおり。

  • Google Apps Script用スプレッドシートを作成する
    • スプレッドシートにGoogle Apps Script(GAS)を設定する
    • Twitter APIのキーやトークンを登録
    • アプリケーションを認証する(初回のみ)
  • 投稿内容をスプレッドシートに記入
    • テスト実行する
  • トリガーを設定して自動化する

スプレッドシートを使ってGoogle Apps Scriptを作成する方法

ここからは、実行に必要なものが全てそろった前提で、詳細な作成手順を説明していきます。

手順1)スプレッドシートを作成する

Googleスプレッドシートを作成して「拡張機能」>「Apps Script」をクリックします。

スプレッドシートの拡張機能からApp Scriptをクリックする

手順2)Google Apps Scriptを作成する

自動投稿するスクリプトを作成していきます。

ダウンロードしたGoogle Apps Script(一式)を使います。

  • コード.gs(自動で作成される)
    • すでに書かれているコードを全て選択して削除する
    • 次に「scheduledTweetTxtOnly.gs」の中身をコピーして貼り付けて保存する
すでにあるコードを削除してコードをコピーする

次に「コード.gs」の中にあるKeyとTokenを取得したものに変更して保存してください。

登録するKeyとTokenは、「Twitter API」で発行したものです。

  • TWITTER_CONSUMER_KEY:取得したAPI Key
  • TWITTER_CONSUMER_SECRET:取得したAPI Key Secret
  • TWITTER_ACCESS_TOKEN:取得したAccess Token
  • TWITTER_ACCESS_TOKEN_SECRET:取得したAccess Token Secret
  • CLIENT_ID:取得したClient ID
  • CLIENT_SECRET:取得したClient Secret

※Bearer Tokenは使いません。

変更する場所は、「コード.gs」の下記の場所です。

キーを入力する

手順3)その他に必要なGoogle Apps Scriptを作成する

次に下記の4つのファイルを作成してください。

「+」>「スクリプト」でファイルを作成して、すでに書かれているコードを全て選択して削除した後に、ダウンロードしたファイルから、同じファイル名の内容をコピーして貼り付けます。

  • OAuth2.gs
  • Strage.gs
  • Service.gs
  • Utilities.gs
スクリプトをクリックして追加する

手順4)アプリケーションの認証を行う

このアプリケーションを、Xで使えるようにするための認証を行います。

コード.gsを選択した状態で、リストから「main」を選択して、「実行」をクリックしてください。

mainを選択して実行する

「承認が必要です」と表示されたら「権限を確認」をクリック。

承認が必要と言われたら権限が九人をクリックする

Googleスプレッドシートを作成したGoogleアカウントを選択。

認証するアプリを使っているアカウントを選択する

「このアプリはGoogleで確認されていません」と表示されたら「詳細」をクリックして「無題のプロジェクト(安全ではないページ)に移動」をクリックしてください。

Googleのアプリを認証するページに移動する

「すべて選択」にチェックを入れて「続行」をクリック。

Googleの認証を全て選択して許可する

画面下の方に「実行ログ」が出力されます。

正常に実行が完了しているか確認してください。

正常に終了していた場合、「以下のURLで認証してください」と書かれているURLを全てコピーしてください。

認証コードが表示されるのでコピーして貼り付けて実行する

コピーしたURLを、ブラウザの新しいタブに貼り付けてアクセスすると、「X(旧Twitter)へのログイン画面」が表示されます。

Twitter APIを発行したアカウントと同じアカウントで、ログインしてください。

Xにログインして認証する

アクセス承認画面が表示されたら「アプリにアクセスを許可」をクリック。

アプリのアクセスを許可する

「認証成功!」と表示されれば、画面は閉じてOKです。

これでアプリケーションの認証作業は完了です。

認証完了と表示されれば終了

スプレッドシートを編集して投稿を作成する

スプレッドシートを編集して、投稿する内容を作成しましょう。

スプレッドシートの「列」と、そこに「設定する内容」は以下のとおりです。

A列で指定した日付で、B~E列の時間帯に、一つのメッセージを投稿できます(4投稿/日)。

セルが空であれば、投稿されません。

スプレッドシートの列内容作成する内容
A列日付数字で1~31を指定
B列5~12時まで(11時59分59秒)に表示するメッセージテキスト、絵文字、リンクなどで投稿を作成
C列12~15時まで(14時59分59秒)に表示するメッセージテキスト、絵文字、リンクなどで投稿を作成
D列15~18時まで(17時59分59秒)に表示するメッセージテキスト、絵文字、リンクなどで投稿を作成
E列18~24時まで(23時59分59秒)に表示するメッセージテキスト、絵文字、リンクなどで投稿を作成

スプレッドシートの作成イメージはこちら。

手順1)シート名を変更する

最初に、Googleスプレッドシートのシート名を「投稿メッセージリスト」に変更してください。

手順2)投稿内容を作成する

シートのA列のセルは「日付」で、1~31の数字です。

B~E列のセルには、「投稿内容」を書き込みます。

テキストや絵文字などを使って自由に作成できます(画像は投稿できません)。

  • B列:朝用投稿(5〜11時59分59秒)
  • C列:昼用投稿(12〜14時59分59秒)
  • D列:夕方用投稿(15〜17時59分59秒)
  • E列:夜用投稿(18〜23時59分59秒)

下記は、1日~31日の5時~12時までのサンプルメッセージです。

手順3)テスト投稿

テスト投稿で、実際に投稿できるかを確認しましょう。

リストから「scheduledTweet」を選択して「実行」をクリックしてください。

実行する時は時間帯に注意してください。空のセルの場合は何も投稿されません。

実行ログが正常に終了していることを確認してください。

自分のXアカウントにログインして、投稿されているかを確認してください。

自動投稿を設定する方法

今までは「投稿する仕組み」で、ここからは、Xに自動投稿するための設定(トリガー)を行います。

手順1)トリガーを設定する

Apps Scriptの左メニューから「トリガー」をクリックしてください。

次に画面下の「トリガーを追加」をクリックします。

手順2)トリガー内容を入力する

トリガーの内容を下記のように設定して、「保存」をクリックしてください。

項目設定内容
実行する関数を選択scheduledTweet
イベントのソースを選択時間主導型
時間ベースのトリガーのタイプを選択日付ベースのタイマー
時刻を選択投稿したい時間をリストから指定

保存が完了すると登録したトリガーが表示されます。

手順3)トリガー内容を4つ登録する

手順2を繰り返して、投稿したい時間のトリガーを設定しましょう。

トリガーは下記の時間帯に1つ設定できます(最大4つ)。

  • 5~12時まで(11時59分59秒)の範囲で1つ
  • 12~15時まで(14時59分59秒)の範囲で1つ
  • 15~18時まで(17時59分59秒)の範囲で1つ
  • 18~24時まで(23時59分59秒)の範囲で1つ

なお、同じ時間帯にトリガーを2つ設定すると、エラーにはなりませんが、同じ内容が2つ投稿されてしまうので注意してください。

例:6時~7時にトリガーを1つ、10時から11時にトリガーをもう一つ設定した場合
5~12時まで(11時59分59秒)の範囲にトリガーが2つあるため、同じ内容が2回投稿されてしまいます。

これで全ての設定が完了です。

トリガーで設定した時間になると、自動でXに投稿されます。

シートの内容を更新しなければ、翌月も同じ内容が投稿されるので、必要に応じて変更してください。

よくある質問

時間通りに実行されない

トリガーの設定範囲が5時~6時のように、1時間の範囲になっているため、5時ぴったりに実行するということはできません(Googleの仕様です)。

投稿が表示されない

設定したキーの場所が間違っていないかどうか確認しましょう。

  • API KeyやAPI Key Secretは「TWITTER_CONSUMER_KEY」と「TWITTER_CONSUMER_SECRET」に設定します(Client IDやClient Secretではありません)。
  • 全てのスクリプトを作成したか確認してください。コード.gs以外にもOAuth2.gsなども全て必要です。
  • Access TokenやAccess Token SecretのパーミッションがRead onlyになっていると表示されません。

「Bad Request Error 400」と表示されてApps Scriptが開けない

ChromeでログインしているGoogleアカウントと、スプレッドシートを作成したアカウントが一致していない可能性があります。

シークレットウィンドウを使うか、Chromeにプロフィールを追加して対応してください。

「Could not authenticate you(code 32)」と実行ログに表示されて投稿できない

Access Tokenが「Read only」の状態だと投稿はできません。

「Read and write」のアクセス権限があるトークンを使用するか、Regenerateしてください。

認証後、「認証成功!」が出ない or 投稿でない

Xへのアクセス許可を行った後でも、トークンが間違っている、またはApps Scriptの保存がされていないと認証に失敗します。すべてのキーやトークンを再確認してください。

投稿されない時間帯があります

スプレッドシートの該当時間帯のセルが空欄、または日付がA列に正しく入力されていないと投稿されません。

どの時間に投稿されるのか、どこで決まりますか?

トリガーの実行時間とスプレッドシートの各列(B〜E列)の組み合わせで決まります。

たとえば、午前6時にトリガーがあれば、B列の内容が投稿されます。

毎日自動投稿できますか?

はい。トリガーを設定すれば毎日自動で投稿されます。必要に応じて曜日や時間帯を変えることも可能です。

投稿内容は何件まで登録できますか?

日付(1〜31)ごとに4件まで投稿可能です(時間帯別にB〜E列)。最大124件/1か月分が可能です。

Twitter APIの利用にお金はかかりますか?

無料(Freeプラン)で利用可能です。ただし、投稿回数に制限があります(500ツイート/月)。

セルのメッセージを変更しなければ同じメッセージが表示されますか?

はい。セルのメッセージを変更しなければ、毎月、同じ日時に同じメッセージが表示されます。

セルが空の場合はどうなりますか?

空の場合はスキップされます(メッセージは投稿されません)。

-副業ブログ