SNS投稿自動化

GASでThreadsを自動投稿する方法|無料スクリプトの設定手順と注意点

GAS(Google Apps Script)を活用してThreads自動投稿を無料で実現する手順を解説します。APIトークン取得からスクリプト設定・トリガー設定まで初心者向けにわかりやすく説明。60日ごとのトークン更新やAPI制限の注意点...

運営:SNSブースト / 株式会社 Maliddy

GASでThreadsを自動投稿する方法|無料スクリプトの設定手順と注意点

Threadsへの毎日投稿を続けるには、相応の時間と手間がかかります。投稿頻度を維持しながら本業に集中するには、投稿作業の自動化が有効な選択肢です。

GAS(Google Apps Script)は、Googleが提供する無料のスクリプト実行環境です。Threads APIと組み合わせることで、Googleスプレッドシートで管理した投稿内容を指定した日時に自動でThreadsへ投稿する仕組みを構築できます。

この記事では、GASを使ったThreads自動投稿の設定手順を、APIトークンの取得から動作確認まで順を追って解説します。あわせて、GAS運用の注意点と、より手軽な代替手段についても紹介します。

GASでThreads自動投稿ができる仕組み

GASはGoogleアカウントさえあれば無料で使えるサーバーレスのスクリプト実行環境です。外部のAPIを呼び出す「UrlFetchApp」という機能を使うことで、Threads APIとの連携が可能になります。

投稿の流れは次のとおりです。

  1. Googleスプレッドシートに投稿テキストと投稿日時を入力
  2. GASのトリガーが一定間隔(例:5分ごと)で起動
  3. 現在時刻と一致する投稿行を検索
  4. Threads APIを呼び出して投稿を実行

この仕組みを使えば、月額費用ゼロでThreadsの予約投稿が実現できます。ただし、APIトークンの取得や初期設定にはある程度の技術的な知識が必要です。

事前準備:必要なものを揃える

Threads APIアクセストークンの取得

GASからThreadsに投稿するには、Threads APIのアクセストークンが必要です。取得には以下の手順が必要になります。

  1. Meta for Developersにアクセスし、アプリを作成
  2. 「Threads」製品をアプリに追加
  3. アプリのApp IDとApp Secretを取得
  4. OAuthフローでユーザートークンを発行
  5. 長期アクセストークン(60日有効)に交換

この手順には、MetaのDeveloperアカウントとFacebookアカウントが必要です。審査なしで使える「開発モード」では、自分のアカウントにのみ投稿できます。

Googleスプレッドシートの準備

投稿管理用のスプレッドシートを作成します。最低限、以下のカラムが必要です。

  • 投稿予定日時(YYYY/MM/DD HH:MM形式)
  • 投稿テキスト
  • 投稿済みフラグ(TRUE/FALSE)

GASコードの設定手順【コピペOK】

ステップ1:スクリプトエディタを開く

スプレッドシートのメニューから「拡張機能」→「Apps Script」を選択します。

ステップ2:コードを作成する

以下のコードをコピーして、スクリプトエディタに貼り付けます。

function postToThreads() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const data = sheet.getDataRange().getValues();
  const token = PropertiesService.getScriptProperties().getProperty('THREADS_TOKEN');
  const userId = PropertiesService.getScriptProperties().getProperty('THREADS_USER_ID');
  const now = new Date();

  for (let i = 1; i < data.length; i++) {
    const scheduledTime = new Date(data[i][0]);
    const text = data[i][1];
    const posted = data[i][2];

    if (posted === true) continue;

    const diff = Math.abs(now - scheduledTime) / 1000 / 60;
    if (diff > 5) continue;

    const containerRes = UrlFetchApp.fetch(
      `https://graph.threads.net/v1.0/${userId}/threads`,
      {
        method: 'post',
        payload: { media_type: 'TEXT', text: text, access_token: token }
      }
    );
    const containerId = JSON.parse(containerRes.getContentText()).id;

    UrlFetchApp.fetch(
      `https://graph.threads.net/v1.0/${userId}/threads_publish`,
      {
        method: 'post',
        payload: { creation_id: containerId, access_token: token }
      }
    );

    sheet.getRange(i + 1, 3).setValue(true);
  }
}

ステップ3:アクセストークンを保存する

スクリプトプロパティにトークンとユーザーIDを登録します。「プロジェクトの設定」→「スクリプトプロパティ」から以下を追加します。

  • THREADS_TOKEN:取得したアクセストークン
  • THREADS_USER_ID:ThreadsアカウントのユーザーID

ステップ4:トリガーを設定する

「トリガー」メニューから「postToThreads」関数を「時間主導型」「5分おき」で設定します。これで、スプレッドシートに入力した時刻の前後5分以内に自動投稿が実行されます。

GAS自動投稿の注意点

アクセストークンの有効期限

Threads APIの長期アクセストークンは60日で期限切れになります。切れると投稿が停止するため、定期的な更新が必要です。更新を忘れると投稿が停止するため、カレンダーへのリマインダー設定を推奨します。

GASの実行時間制限

GASには1回の実行で最大6分という制限があります。投稿処理が多い場合や外部API呼び出しが遅い場合、タイムアウトが発生することがあります。

API利用制限

Threads APIには1日あたりの投稿数に上限があります(通常は250投稿/日)。大量投稿を自動化する場合は、この制限に注意が必要です。

利用規約の遵守

スパムや自動生成コンテンツの大量投稿はThreadsの利用規約に違反する可能性があります。自動化ツールの利用は、価値のあるコンテンツを効率よく発信する目的に限定することが重要です。

GASと専用ツールの比較

GASによる自動投稿は無料で実現できますが、初期設定や運用に手間がかかります。専用の予約投稿ツールと比較すると、次のような違いがあります。

GAS自作と専用ツールの比較表

比較項目

GAS自作

専用ツール(ポスロボ等)

初期費用

無料

無料プランあり

設定の難易度

高い(コード記述が必要)

低い(GUI操作のみ)

トークン管理

手動更新が必要

自動管理

画像投稿対応

コード追記が必要

標準対応

スマホからの操作

不向き

対応

サポート

なし

あり(ツールによる)

継続運用コスト

ほぼ無料

無料プランあり

GASは「コードを自分でカスタマイズしたい」「ゼロコストで運用したい」場合に有効です。一方、設定の手間を省いてすぐに使いたい場合は、専用ツールのほうが実用的です。

よくある質問(FAQ)

Q. GASのコードが動かない場合、どうすればいいですか?

スクリプトプロパティのトークンとユーザーIDが正しく設定されているか確認してください。次に、GASの実行ログでエラーメッセージを確認します。多くの場合、トークンの期限切れかユーザーIDの誤りが原因です。

Q. 画像付き投稿はできますか?

Threads APIは画像投稿に対応しています。ただし、GASコードの修正と、画像ファイルの公開URLが必要になります。テキスト用の標準コードのままでは画像投稿には対応していないため、追加の実装が必要です。

Q. 無料プランのThreadsアカウントでもAPIを使えますか?

使えます。ただしMeta for Developersでのアプリ作成が必要です。開発モードでは自分のアカウントへの投稿のみ可能で、他ユーザーへの連携には審査が必要になります。

Q. アクセストークンの更新を自動化できますか?

Threads APIのリフレッシュAPIを使えば、トークンの更新処理もGASで自動化できます。ただし、追加のコード実装が必要です。

Q. GASではなく、もっと手軽な方法はありますか?

専用の予約投稿ツールを使う方法があります。ポスロボは無料プランからThreadsの予約投稿が可能で、スプレッドシートやコードの設定なしにGUI操作だけで予約投稿を実現できます。

まとめ

GASを使ったThreads自動投稿は、GoogleスプレッドシートとAPIトークンさえあれば無料で実現できます。ただし、設定には一定の技術的な知識が必要で、トークン管理や実行時間の制限など、継続運用における手間も発生します。

設定の手間を最小限に抑えたい場合や、スマホからも気軽に予約したい場合は、専用ツールの活用を検討してみてください。

まずは無料プランから、Threads予約投稿を試してみてください。https://link.post-robo.com/5gM8vax

最新情報や活用事例はLINEオープンチャットで発信しています。https://line.me/ti/g2/B1yhWR0OQwqsqwmPilTKbW6eXUEntkpxTPRe-A

SNSブーストのLINE運用自動化モック

SNSブーストで、投稿からLINE運用までまとめて自動化。

AIが投稿作成と予約投稿を支援し、LINEの友だち管理・セグメント配信・自動返信まで同じ画面で運用できます。