Google Apps ScriptでThreadsアクセストークンを自動更新する方法|60日失効を放置しない仕組み

k-suke前の記事でThreads APIのアクセストークンを取得できたかな?



でもこのトークン、実は60日で使えなくなっちゃうんでしょ?



そうなんだ。だから、
この記事では「自動で延長し続ける仕組み」をGoogle Apps Script(GAS)で作る方法を紹介しておくね。
WordPressサイトの保守を専門にしているk-suke(当サイト運営者)です。この記事は、当ブログのThreads自動投稿シリーズ(コード版・プラグイン版)で共通して使う「アクセストークンの自動更新」部分だけを切り出した準備記事です。
なぜGASでトークンを自動更新する必要があるの?
Threadsの長期アクセストークンには60日という有効期限があります。
放置すれば必ずいつか投稿が失敗するようになりますが、毎月忘れずに手動更新するのは現実的ではありません。そこでGoogle Apps Script(GAS)を使い、「月1回、自動でトークンを延長する」仕組みを作ります。GASはGoogleアカウントさえあれば無料で使え、スケジュール実行(トリガー)機能も標準で備わっているため、この用途に向いています。
GAS側で何を作ればいい?
やることは大きく2つです。
- トークン更新処理:月1回、Threads APIの更新用エンドポイントを呼び、トークンの有効期限を延長する
- WordPressへの受け渡し窓口:更新した最新のトークンを、WordPress側が問い合わせてきたときに返すWebアプリとして公開する
2つ目が少し独特です。「GASからWordPressへ直接送りつける」方式にすると、レンタルサーバーの「海外からのアクセス制限」機能によってブロックされることがあります(実際に踏んだ落とし穴です)。そのため、WordPress側から定期的にGASへ「最新のトークンちょうだい」と問い合わせに行く方式にしています。
具体的な手順は?
- script.google.com で新規プロジェクトを作成
- コードを貼り付け:トークン更新・WordPressへの応答・メール通知を行うスクリプトを配置します(サンプルは記事末尾に添付)
- スクリプトプロパティを設定:「プロジェクトの設定」から、Meta申請編で取得した「アクセストークン」「ThreadsユーザーID」、および自分で決めた「合言葉(Webhookシークレット)」を登録
- 初回だけ手動実行して権限を許可:
getMyThreadsUserId()などの関数を一度実行し、Googleアカウントへのアクセスを許可します - ウェブアプリとしてデプロイ:「デプロイ > 新しいデプロイ」→種類「ウェブアプリ」を選択。実行するユーザーは「自分」、アクセスできるユーザーは「全員」に設定(合言葉で認証しているため、この設定で問題ありません)
- 発行されたウェブアプリURLを控える:このURLを、WordPress側の設定(wp-config.phpまたはプラグインの設定画面)に登録します
- 月次トリガーを設定:「トリガー」画面から、トークン更新用の関数を「時間主導型・月タイマー」で登録
動作確認はどうやってすればいい?
トリガーの実行を1ヶ月待つ必要はありません。トークン更新用の関数をエディタから手動実行すれば、その場で成功・失敗が実行ログとメールで分かります。WordPress側との連携も、後述の管理画面から「今すぐ問い合わせる」を実行すれば即座に確認できます。
実装中に見つかった、地味だけど大事な注意点
- 「デプロイ」と「トリガー」は別物。月次トリガーはエディタの最新コードをそのまま実行しますが、ウェブアプリ用のURLはデプロイ時点のコードで固定されます。コードを修正したら、ウェブアプリの方は「新しいバージョンとして再デプロイ」しないと変更が反映されません
- 合言葉に記号を使う場合は要注意。「+」のような記号は、URLの組み立て方によっては半角スペースに化けてしまい、認証エラーの原因になります
- WordPress側の関数(
add_query_arg()など)は、値を自動でURLエンコードしてくれるとは限りません。特殊記号を含む文字列を扱う際は、明示的にエンコード処理を挟むと安全です
ここまでで用意できたもの
これで、Threads自動投稿に必要な準備がすべて揃いました。
- Threads APIのアクセストークン・ユーザーID(Meta申請編)
- アクセストークンを自動更新し続ける仕組み(本記事)
あとは、これらの値をWordPress側に登録するだけです。お好みの記事にお進みください。
仕組みを理解しながら自分でカスタマイズしたい方は【コード版】


コードを触らず設定画面だけで済ませたい方は【プラグイン版】





これで下準備は完了だね。あとはWordPress側に値を入れるだけだから、もうひと息!








コメント