本記事では、Googleスプレッドシートで動くX(旧Twitter)の自動投稿ツールのご利用方法を説明します。
本記事は以下の記事内容の一部です。ご覧になっていない方は一読をお願いします。
当ツールのご利用方法
ツールの操作イメージ
通常投稿、予約投稿、定期投稿が可能です。いずれも画像の投稿は可能です。
当ツールのGoogleスプレッドシートの画面説明

画面上部にあるメニューはGASを利用して以下2つのメニューアイテムを追加しています。
追加メニュー | サブメニュー名 |
---|---|
ポスト | すぐに投稿 |
予約投稿 | |
定期投稿 | |
認証 | OAuth1.0 |
OAuth2.0 |
各列の説明です。
投稿カテゴリ | 列名(アルファベット) | 詳細 |
---|---|---|
共通 | ポスト内容(A列) | 文章(140文字まで) |
文字数(B列) | A列で入力した文字数(A列の内容に応じて自動入力) | |
画像フォルダURL(C列) | 画像のみが格納されたGoogleドライブフォルダURL | |
予約投稿 | 年月日(D列) | YYYY/MM/DD形式の年月日 |
時(E列) | 0〜23 | |
分(F列) | 0〜59 | |
予約トリガーID(G列) | 予約投稿登録を行った後に自動入力される実行プログラムのID(編集不可、削除禁止) | |
定期投稿 | 曜日(H列) | 月〜日 |
時(I列) | 0〜23 | |
予約トリガーID(J列) | 定期投稿登録を行った後に自動入力される実行プログラムのID(編集不可、削除禁止) | |
共通 | 最新のポストリンク(K列) | 投稿した内容の最新の詳細ページリンク(自動入力) |
最新の投稿日時(L列) | 投稿完了した最新の日時(自動入力) | |
最新のエラーメッセージ(M列) | 投稿処理に失敗した時のエラーメッセージログ自動入力で(入力内容の不備以外のエラー) | |
メモ(N列) | 自由入力欄(投稿には反映されない) |
当ツールご利用の際は以下の点に注意してください。
以下注意点が守れないと不具合が発生する恐れがあります。
- 列順の変更、列の削除はしないでください。
- ポスト内容の入力は3行目以降からお願いします。
- 投稿処理を実行した際は他の操作はせず、実行完了までお待ちください。
通常投稿(+画像投稿)
通常投稿とは入力したポスト内容をツール経由でXにすぐに投稿するという意です。
A列にポスト内容の入力
A列にポスト内容(文章)を入力します。入力を終えるとB列の文字数が更新されます。

C列にフォルダURLを入力
C列には「メディア」フォルダ配下に作成したフォルダのURLを入力します。
ここでは「メディア」配下に「サンプルイメージ」というフォルダを作成し、「サンプルイメージ」内に4つの画像を用意しました。
好きなフォルダ名、その中にお好きな画像を格納してください。

画像は「.jpg」、「.png」形式のみで1ポストあたり4枚まで投稿可能です。
画像のアップロード順は当ツールのプログラム制御により、画像名の昇順となっております。並び順を気にする方はご確認ください。
ちなみにフォルダ(「サンプルイメージ」など)内に5つ以上画像を保存することは可能ですが、5つ目(画像名の昇順5番目)以降はXの画像アップロード対象からはプログラムで除外しています。
画像フォルダが用意できましたら赤枠のフォルダURLをコピーします。

コピーしたフォルダURLをC列のポスト対象行に貼りつけ、Enterキーを押してください。
注意点として、「https:〜」または「フォルダ名」のリンク形式で貼り付けてください。
また、Googleスプレッドシートの仕様上、リンク変換のサジェスト機能でチップまたはリンク形式に変換できますが、チップ形式だと画像投稿ができないため、サジェスト機能でURLを変換する際は必ずリンク形式を選択してださい。

メニューから「すぐに投稿」を実行
投稿したい行のセルにカーソルが当たった状態でメニュー「ポスト」>「すぐに投稿」をクリックして通常投稿処理を実行します。(キャプチャでは3行目)

通常投稿処理が始まると以下のようなスクリプト実行ポップアップが表示されます。
この時、本画面の操作はお控えください。投稿処理が正常に行えなくなる場合があります。

投稿が成功すると以下のようなモーダルウィンドウが表示されるので、「閉じる」または「×」をクリックして閉じてください。

投稿が成功した場合、K列に先程投稿したポストのリンク、L列にはポストの最新投稿日時が自動入力されます。(ちなみに削除しても問題ないデータです。)
「ポストリンク」をクリックすると先程投稿したポストの詳細ページに遷移します。

↓

Xのプロフィール画面から確認しても先程投稿したポスト内容が反映されています。

予約投稿
予約投稿を行う場合は投稿する年月日/時/分を入力する必要があります。
ポスト内容や画像フォルダURLの入力方法は通常投稿と同じです。
予約登録
D列に年月日を入力します。セルをダブルクリックするとカレンダーが表示されるので、未来の年月日を選択してます。

E列に時間、F列に分を入力します。いずれも未来の値を入力してください。
最終的に「2024年3月4日 16時27分」に設定しました。

予約投稿を行いたい行にカーソルが当たった状態で、メニュー「ポスト」>「予約投稿」>「予約登録」をクリックして予約投稿の登録処理を行います。

以下のようなモーダルウィンドウが表示されたら予約登録完了です。「閉じる」または「×」クリックしてモーダルウィンドウを閉じてください。

画面を確認すると、G列の予約トリガーIDにトリガーIDが自動入力されています。
この値は編集または削除はしないでください。

予約投稿時間までのポスト内容と画像フォルダURL(またはフォルダ内画像の差し替えなど)の変更は可能です。
- 設定した時間通りに投稿処理は行われますが、内容がXに投稿される時間は投稿内容(特に画像の容量)に応じて1〜2分ほど遅れる場合があります。
- 予約登録済みの状態で年月日/時/分を変更しても予約投稿時間は更新されません。予約投稿時間を変更したい場合は次章で説明する予約解除を行う必要があります。
2024年3月4日 16時27分の0〜59秒の間に対象の予約トリガーが実行されると予約投稿完了、D〜G列の値はリセットされ、K〜L列の値が更新されます。

↓

予約投稿が実行されたタイミングでスプレッドシートをリロードすると、まれにD〜G列がリセットされない場合があります。その際はポスト内容が投稿されていることをご確認後、他の未入力行からコピペするなどして該当行をリセットしてください。
予約解除
「予約投稿登録したけどやっぱり辞めたい」「予約投稿登録したけど時間を再設定したい」という場合は予約投稿解除を行う必要があります。
以下のような予約済み投稿を例に説明します。

予約投稿の解除対象行のセルにカーソルが当たった状態で、メニュー「ポスト」>「予約投稿」>「予約解除」をクリックします。

以下のようなモーダルウィンドウが表示されたら予約投稿解除の成功です。

D〜G列がリセットされました。予約投稿時間を再設定したい場合は再度予約投稿の登録作業を行ってください。

定期投稿
定期投稿を行う場合は投稿する曜日/時間を入力する必要があります。
ポスト内容や画像フォルダURLの入力方法は通常投稿と同じです。
定期登録
H列に曜日、I列に時間を設定します。ここでは月曜日の17:00〜に設定しました。

定期投稿を行いたい行にカーソルが当たった状態で、メニュー「ポスト」>「定期投稿」>「定期登録」をクリックして定期投稿の登録処理を行います。

以下のようなモーダルウィンドウが表示されたら定期登録完了です。「閉じる」または「×」クリックしてモーダルウィンドウを閉じてください。

画面を確認すると、J列の定期トリガーIDにトリガーIDが自動入力されています。
この値は編集または削除はしないでください。(キャプチャは割愛します)
定期投稿時間までのポスト内容と画像フォルダURL(またはフォルダ内画像の差し替えなど)の変更は可能です。
- Googleサービスの仕様上、設定時刻ぴったりには定期投稿されません。17:00に設定した場合は17:00〜18:00の間に投稿されます。
- 定期投稿登録を行う際は、現在の曜日および現在の時間帯が被らないように設定してください。
例えば現在が月曜日の17:30で、あるポストを月曜日の17:00〜18:00の時間帯で新たに定期投稿登録を行ったとします。この際、定期投稿処理は18:00までには実行されますが、最初の投稿処理は失敗してしまいますのでご注意ください。(2回目以降は成功します。) - 定期登録済みの状態で曜日/時間を変更しても定期投稿時間は更新されません。定期投稿時間を変更したい場合は次章で説明する定期解除を行う必要があります。
月曜17:00〜18:00の間に対象の定期トリガーが実行されると定期投稿完了、D〜G列の値はリセットされ、K〜L列の値が更新されます。(キャプチャは割愛します)
定期解除
「定期投稿登録したけどやっぱり辞めたい」「定期投稿登録したけど時間を再設定したい」という場合は定期投稿解除を行う必要があります。
以下のような登録済み定期投稿があった場合、定期投稿の解除対象行のセルにカーソルが当たった状態で、メニュー「ポスト」>「定期投稿」>「定期解除」をクリックします。

以下のようなモーダルウィンドウが表示されたら定期投稿解除の成功です。

H~J列がリセットされました。定期投稿時間を再設定したい場合は再度定期投稿の登録作業を行ってください。

トラブルシューティング
「ポスト」「認証」のメニューが表示されていない
→稀に表示されないこともあるので、その際はスプレッドシートの再起動をお願いします。
OAuthの認証エラーメッセージが表示される
→Twitter APIアクセス情報が間違っているか、開発ポータルのユーザー認証設定のコールバックURL(スクリプトIDの間違いなど)の設定が間違っている可能性があります。

以前のアカウントは削除したので新しいアカウント情報を入力したがOAuth認証ができない
同一のスプレッドシートで再認証ができないため、そのスプレッドシートは破棄して新たにスプレッドシートのコピーを作成してください。