湯川です。
このページでは、Google SpreadsheetとGoogle Apps Script(GAS)を使って、Threadsに自動投稿するツールの設定と使用方法を説明します。
このツールを使うことで、投稿内容を事前に準備し、指定した時間に自動投稿することができます。
必要なもの
ツールのダウンロード
本ツールのスプレッドシートテンプレートとGASスクリプトは、以下の条件を満たした方にご提供しています。
- 湯川のメルマガに登録する
- 当サイトで紹介しているアドモール商材を当サイト経由で累計2点以上購入する
- ツールの申請をメールでいただく
利用に必要なアカウント
- Googleアカウント(Google Spreadsheet用)
- Threadsアカウント(APIアクセス用)
- Facebookアカウント(Threads API取得に必要)
- API: Application Programming Interface の略。ソフトウェア同士を接続するための仕組み。
- Google Apps Script (GAS): Googleのサービスを自動化するためのスクリプト言語。
なお、本マニュアルはGoogleアカウント、Threads・Facebookアカウントの開設、PC・スマートフォンのブラウザの使い方といった、インターネットでビジネスをする上での基礎的な内容については解説しておりませんので、分からないことがあればGoogleやChatGPTを使って適宜ご自身でお調べいただきますようお願いいたします。
ツールの仕様
このGoogle Apps Script(GAS)ツールは、Google スプレッドシートから指定したテキストを自動的にThreadsに投稿するためのものです。
主な機能
- スプレッドシートに入力した内容を自動的にThreadsに投稿
- 投稿履歴の自動記録と管理
- 安全なOAuth2認証を使用した接続
- 長期アクセストークンによる継続的な利用
- 指定した時間に自動投稿するスケジューリング
Google Spreadsheetファイル
Google Spreadsheetファイルは
- [Threads投稿リスト]シート:Threadsにこれから投稿する文章を蓄積する
- [Threads投稿履歴]シート:Threadsに投稿したポストと時刻をログとして表示する
で構成されています。
動作としては、
- [Threads投稿リスト]に投稿文を入力
- トリガーの投稿時間設定に応じて、[Threads投稿リスト]の上の行から順番にThreadsに自動投稿
- 投稿が[Threads投稿履歴]に転記された上で[Threads投稿リスト]から投稿が削除され、次の投稿文が一番上の行に順繰りで上がる
Google Apps Script(GAS)を実行することで、Spreadsheetの方で指定した時間もしくは間隔毎に、投稿文が[Threads投稿リスト]シートの上の行から順番にThreadsに自動投稿されていくという流れです。
投稿後はThreads投稿履歴シートに投稿文が転記され、次の行の投稿文が次回自動投稿される仕様になっています。
Threads APIとの連携について
Threads APIとの連携ではTHREADS_CLIENT IDとTHREADS_CLIENT SECRETというキーで関連づけています。
[拡張機能] → [App Script]をクリックすると出てくるスクリプトエディタのパラメータ欄で両値を設定します。

投稿時間の設定について
Apps Scriptのトリガー設定画面から、投稿時間や間隔を設定することができます。
設定の際は、まずトリガー設定画面の「新しいトリガー作成します。」リンクを押します。

トリガー追加ウィンドウが表示されますので、下記の通り設定して保存することで、任意の時間帯での投稿設定が可能です。
- 実行する関数:sendThreadsPost
- 実行するデプロイ:Head
- イベントのソースを選択:時間主導型
- 時間ベースのトリガーのタイプを選択:日付ベースのタイマー
- 時刻の選択:<任意の時間帯を指定>
STEP 1: Google Spreadsheetの初期設定手順
Google Spreadsheetの設定を行います。ここではスプレッドシートを自分の環境にコピーし、APIとの連携準備を行います。
Google Spreadsheetの初期設定で必要なこととしては、大きく分けて
- 事前準備
- ThreadsのAPIの申請とAPIキーの取得
- Google Apps Scriptの認証と初回ログイン
の3つの工程に分かれています。
STEP 1-1. 事前準備
ツールの入手
まず、Threads用のスプレッドシートテンプレートを入手します。ツールは以下の条件を満たした方にご提供しています。
- 湯川のメルマガに登録
- 当サイト紹介商材を当サイト経由で累計2点以上購入
- ツールの申請をメール
条件を満たしてツールを入手されましたら、以下の手順に進んでください。
まず、Google Spreadsheetのテンプレートを自分のアカウントにコピーし、必要な権限設定を行います。
手順
① Threads用のスプレッドシートテンプレートにアクセスする。
(配布されたURLを使用)
② 右上のログインボタンを押し、Googleにログインする(アカウントがない場合は作成)。

③ ログイン後、[ファイル]→[コピーを作成]を選択する。

④ 自分が管理しやすいように名前を変えて、[コピーを作成]ボタンを押す。

STEP 1-2. ThreadsのAPI設定
次に、ThreadsのAPIを取得します。
これにより、Google SpreadsheetのプログラムからThreadsへの投稿が可能になります。
Threadsの開発者アカウントとAPIを使用するには、以下のアカウントが必要です。
- Instagramアカウント
- Facebookアカウント
FacebookアカウントはMeta for Developers(旧Facebook for Developers)にアクセスするために必要になります。
Meta for Developersアカウント作成
① Facebookアカウントを準備する。
Meta for Developersにはfacebookアカウントでログインする必要があります。
② Meta for Developersにアクセスする。
https://developers.facebook.com
③ 画面右上の「ログイン」をクリックし、Facebookアカウントでログインする。

④ ログイン後、「マイアプリ」→「アプリを作成」をクリックする。


⑤ アプリ名(例:Threads自動投稿)と連絡先メールアドレスを入力し、「次へ」をクリックする。

⑥ 「ユースケースを追加」で「Threads APIにアクセス」にチェックを入れ、「次へ」をクリックする。

⑦ 「現時点ではビジネスポートフォリオをリンクしない」にチェックを入れ、「次へ」をクリックする。

⑧ 「次へ」をクリックする。

⑨ 「ダッシュボードに移動」をクリックする。

⑩ もう一度Facebookのパスワードを入力し、「送信」を押す。

⑪ 新しく作成したアプリのダッシュボードが表示されることを確認する。

アプリのIDとシークレットキーの確認
① 作成したアプリのダッシュボードを表示する。
② 左側メニューから「アプリ設定」→「ベーシック」を選択し、表示ボタンを押して「ThreadsアプリID」と「Threadsのapp secret」を表示する。

③ 「ThreadsアプリID」と「Threadsのapp secret」を確認し、Google Spreadsheetのapp Scriptのパラメータにコピペする。
// === Threads 用認証クレデンシャル ====================================
const THREADS_CLIENT_ID = 'コピーしたThreadsアプリID';
const THREADS_CLIENT_SECRET = 'コピーしたThreadsアプリシークレット';
④ 「保存」ボタンを押し、App Scriptを保存する。
権限の追加
① 「ユースケース」を押し、「カスタマイズ」の鉛筆マークをクリックする。

② 「threads_content_publish」「threads_manage_replies」「threads_read_replies」の欄にある「追加」ボタンを押すことで、投稿の権限を追加する。

<追加すると次のようになります>

コールバックURLの登録
① 画面左側の「設定」を押すと、下記の画面に遷移するので、
- コールバックURLをリダイレクト
- コールバックURLをアンインストール
- コールバックURLを削除
の3つの欄にコールバックURLを入力し、「保存」を押す。
なお、最初の「コールバックURLをリダイレクト」の欄は、入力するだけではなく、入力したURLを選択する必要があることに注意する。

1. Google Spreadsheetの[拡張機能]→[Apps Script]をクリック

2. Apps ScriptのウィンドウのURLのprojectsとeditの間の文字列がスクリプトIDになる。

コールバックURLで入力する「スクリプトID」は、Google SpreadsheetのURLにある文字列ではなく、Google Spreadsheetから起動したApp ScriptエディタのURLの中に入っている文字列になります。
また、コールバック関数は
https://script.google.com/macros/d/[スクリプトID]/usercallback
という形式になっており、
App ScriptエディタのURL
https://script.google.com/u/0/home/projects/[スクリプトID]/edit
とは異なりますのでご注意ください。
テストユーザーの追加(Threadsアカウントとの関連付け)
① ユースケースの設定画面の下部にある、「Threadsテスターを追加または削除」をクリックする。

② 「メンバーを追加」を押す。

③ 「Threadsテスター」を選択し、虫眼鏡の欄にThreadsのアカウントIDを入力後、「追加」ボタンを押す。

④ 先ほど入力したThreadsのアカウントIDでThreadsにログインする。
⑤ 「設定」→「アカウント」→「ウェブサイトのアクセス許可」をクリックする。

⑥ 「招待」を押すと、先ほど作ったアプリの名前が表示されるので、「同意する」を押す。

⑦ 確認画面が出てくるので、「同意する」を押す。

⑧ Threadsをいったんログアウトする。
⑨ 「アプリの役割」→「役割」の画面で⑦で承認したThreadsのアカウントがユーザーとして追加されていることを確認する。

STEP 1-3. Google Spreadsheetの初期設定
初回認証の実行
① Google SpreadsheetのApps Scriptのエディタで「デバッグ」ボタンの横にある関数選択ドロップダウンから「firstLoginThreads」を選択する。

②「実行」ボタン(再生ボタン)をクリックする。

③ 初回実行時に権限を要求される場合は「権限を確認」→「詳細」→「安全ではないページに移動」→「許可」の順にクリックします。

④ Gmailアカウントにログインする。

⑤ 「このアプリはGoogleで確認されていません」という表示が出たら、[詳細]を押す。

⑥ 「ThreadsPost(安全ではないページ)に移動」をクリックする。

⑦ チェックマークをすべて選択し、[続行]ボタンを押す。

⑧ 下記のログが表示された場合は、もう一度Apps Scriptのエディタメニューの[実行]ボタンを押し、firstLoginThreadsを実行する。(求められなかった場合は⑨に進む)

⑨ 実行ログに表示されるhttps://以下の文字列をすべてコピーし、URL欄に貼り付ける。

⑩ 「【アカウント名】として続行」を押す。

⑪「Success! Token saved.」と表示される画面が出たら成功です。

長期トークンへの変換
① GASエディタに戻り、関数選択ドロップダウンから「exchangeToLongLivedToken」を選択します。

②「実行」ボタンをクリックします。

③ ログに「長期トークンを保存しました。有効期限: XXXXX秒」と表示されることを確認します。

トークン状態の確認
関数選択ドロップダウンから「checkThreadsTokenStatus」を選択し、「実行」ボタンをクリックします。
ログに「トークンは有効です。ユーザーID: XXXXX」と表示されることを確認します。

STEP 2: 自動投稿の設定と運用
トリガーの設定(自動投稿スケジュール)
① GASエディタ画面左側の「トリガー」アイコン(時計マーク)をクリックします。

② 「ダッシュボードを表示」を押す。

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

④ 以下の要領でトリガーを作成し、保存を押す。
- 「実行する関数を選択」→「sendThreadsPost」
- 「実行するデプロイを選択」→「Head」
- 「イベントのソースを選択」→「時間主導型」
- 「時間ベースのトリガーのタイプを選択」→「日付ベースのタイマー」
- 「時刻を選択」→希望する時間(例:「午前7時〜8時」)
- 「失敗時の通知設定」→「毎日通知を受け取る」(推奨)

⑤ セキュリティ警告が表示されたら「許可」を押す。
⑥ 以下のように「トリガー一覧」に追加されていることを確認する。

例えば毎日朝・昼・晩の3回投稿したい場合は、上記の操作を3回行い、各々の「時刻の選択」のプルダウンメニューで朝・昼・晩の時間帯を指定して保存すればOKです。
トークン自動リフレッシュの設定
関数選択ドロップダウンから「createRefreshTrigger」を選択し、「実行」ボタンをクリックします。
これにより、30日ごとにトークンの有効性を自動でチェックするトリガーが設定されます。


投稿の準備と管理
スプレッドシートのThreads投稿リスト
シートを開き、A列に投稿したい内容を入力します。
- A1:1番目に投稿する内容
- A2:2番目に投稿する内容
設定したスケジュールで、A1の内容が自動投稿されます。
投稿後、その行は自動的に削除され、A2が次の投稿として繰り上がります。
Threads投稿履歴
シートで過去の投稿内容と日時を確認できます。
手動投稿のテスト
① Threads投稿リスト
のA1セルにテスト投稿文を入力します。

② App Scriptエディタで関数選択ドロップダウンから「sendThreadsPost」を選択し、「実行」ボタンをクリックします。

③ 実行後、Threadsアプリで投稿が表示されることを確認します。

④ スプレッドシートのThreads投稿履歴
シートに記録が追加されたことを確認します。

複数の投稿を1つのスレッド(ツリー)にまとめるには、Threads投稿リスト
のB列に同じ文字列を入力します。
■設定手順
- A列に投稿内容を書く
- B列に識別用の文字列を入力する
- 同じツリーにしたい投稿には、同じ文字列を使う
■具体例
A列 | B列 |
投稿文テスト1 | t1 |
投稿文テスト2 | t1 |
投稿文テスト3 | t2 |
投稿文テスト4 | t2 |
■結果
この設定により、以下のようにツリー表示されます。
ツリー1(t1グループ)
- 投稿文テスト1
- └ 投稿文テスト2(リプライとして表示)
ツリー2(t2グループ)
- 投稿文テスト3
- └ 投稿文テスト4(リプライとして表示)
■注意点
- ツリー形式にしない場合は、B列を空欄にしてください
- 識別文字列は英数字何でもOK
- 同じ文字列が連続している投稿がひとつのツリーになります
よくあるトラブルと解決方法
ツールの設定や利用時に発生する可能性のある問題と、その解決方法をご紹介します。
【問題1】API認証でエラーが出る
以下の3点を確認してください。
- コールバックURLが正しく設定されているか
- スプレッドシートのApp ScriptにThreads用のTHREADS_CLIENT_IDとTHREADS_CLIENT_SECRETを入力できているか
- App Scriptで設定したTHREADS_CLIENT_ID、THREADS_CLIENT_SECRETが紐づいているアカウントとログインしたアカウントが同じになっているか
特に、複数のThreadsアカウントのAPI設定を連続して行う場合は、今設定しようとしているアカウントと別のアカウントを混同しないように注意してください。
【問題2】Threadsへの投稿が実行されない
以下の3点を確認してください。
- 「トリガー一覧」でトリガーが正しく設定されているか
- ThreadsアカウントのAPIアクセス権限が有効になっているか
- Google Apps Scriptのログでエラーメッセージを見る
既存の投稿と同じポストをしたり、500字を超える投稿しようとした場合は、Apps Scriptのログでエラーが出ます。
【問題3】トークンが無効になった
以下の手順でトークンをリセットしてください。
- 関数「resetThreadsAuth」を実行します
- 「firstLoginThreads」を実行して再認証します
- 「exchangeToLongLivedToken」を実行します
【問題4】その他のエラー、原因が分からない
インターネット回線が混雑していると、次の処理の画面遷移に間に合わなくなって止まってしまうケースがあります。
Google Apps Scriptのログでエラーメッセージを確認し、適宜時間調整をしてください。
投稿の段階で問題が発生した場合は、サポート連絡先までご連絡ください。
ご連絡の際は、ログをご参照いただき、
- どの関数で止まっているか
- エラーメッセージ
- 何度も再現するか、もしくは再現するときとしないときがあるのか
の3点を併せて教えていただけますと助かります。
よくある質問
- 投稿に画像を添付できますか?
-
現在のスクリプトはテキスト投稿のみ対応しています。
- ツリー形式の投稿に対応していますか?
-
はい、対応しています。ただし、すでに投稿されているポストに対してリプライを入れることはできません。
- 複数のThreadsアカウントで使用できますか?
-
1つのスプレッドシートにつき1つのThreadsアカウントのみ対応しています。
複数アカウントに投稿したい場合は、アカウントごとにスプレッドシートを作成してください。
- トークンの有効期限はどれくらいですか?
-
長期トークンは約60日間有効です。「createRefreshTrigger」を実行すると、30日ごとに自動チェックが行われます。
- 投稿の間隔を変更するには?
-
トリガー設定を開き、既存のトリガーを削除して新しい時間設定で再作成してください。
複数のトリガーを設定することで、1日に複数回投稿することも可能です。
口コミの投稿はこちら(直接のご相談はLINE)