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

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

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

まめすけ

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

k-suke

そうなんだ。だから、
この記事では「自動で延長し続ける仕組み」をGoogle Apps Script(GAS)で作る方法を紹介しておくね。

WordPressサイトの保守を専門にしているk-suke(当サイト運営者)です。この記事は、当ブログのThreads自動投稿シリーズ(コード版・プラグイン版)で共通して使う「アクセストークンの自動更新」部分だけを切り出した準備記事です。

この記事はThreads自動投稿シリーズの準備編です。
先に「Threads APIのアクセストークン取得方法(Meta申請編)」を済ませてから進めてください。

実装方法はこちら → 【コード版】【プラグイン版】

目次

なぜGASでトークンを自動更新する必要があるの?

Threadsの長期アクセストークンには60日という有効期限があります。

放置すれば必ずいつか投稿が失敗するようになりますが、毎月忘れずに手動更新するのは現実的ではありません。そこでGoogle Apps Script(GAS)を使い、「月1回、自動でトークンを延長する」仕組みを作ります。GASはGoogleアカウントさえあれば無料で使え、スケジュール実行(トリガー)機能も標準で備わっているため、この用途に向いています。

GAS側で何を作ればいい?

やることは大きく2つです。

  • トークン更新処理:月1回、Threads APIの更新用エンドポイントを呼び、トークンの有効期限を延長する
  • WordPressへの受け渡し窓口:更新した最新のトークンを、WordPress側が問い合わせてきたときに返すWebアプリとして公開する

2つ目が少し独特です。「GASからWordPressへ直接送りつける」方式にすると、レンタルサーバーの「海外からのアクセス制限」機能によってブロックされることがあります(実際に踏んだ落とし穴です)。そのため、WordPress側から定期的にGASへ「最新のトークンちょうだい」と問い合わせに行く方式にしています。

具体的な手順は?

  1. script.google.com で新規プロジェクトを作成
  2. コードを貼り付け:トークン更新・WordPressへの応答・メール通知を行うスクリプトを配置します(サンプルは記事末尾に添付)
  3. スクリプトプロパティを設定:「プロジェクトの設定」から、Meta申請編で取得した「アクセストークン」「ThreadsユーザーID」、および自分で決めた「合言葉(Webhookシークレット)」を登録
  4. 初回だけ手動実行して権限を許可getMyThreadsUserId()などの関数を一度実行し、Googleアカウントへのアクセスを許可します
  5. ウェブアプリとしてデプロイ:「デプロイ > 新しいデプロイ」→種類「ウェブアプリ」を選択。実行するユーザーは「自分」、アクセスできるユーザーは「全員」に設定(合言葉で認証しているため、この設定で問題ありません)
  6. 発行されたウェブアプリURLを控える:このURLを、WordPress側の設定(wp-config.phpまたはプラグインの設定画面)に登録します
  7. 月次トリガーを設定:「トリガー」画面から、トークン更新用の関数を「時間主導型・月タイマー」で登録

動作確認はどうやってすればいい?

トリガーの実行を1ヶ月待つ必要はありません。トークン更新用の関数をエディタから手動実行すれば、その場で成功・失敗が実行ログとメールで分かります。WordPress側との連携も、後述の管理画面から「今すぐ問い合わせる」を実行すれば即座に確認できます。

実装中に見つかった、地味だけど大事な注意点

  • 「デプロイ」と「トリガー」は別物。月次トリガーはエディタの最新コードをそのまま実行しますが、ウェブアプリ用のURLはデプロイ時点のコードで固定されます。コードを修正したら、ウェブアプリの方は「新しいバージョンとして再デプロイ」しないと変更が反映されません
  • 合言葉に記号を使う場合は要注意。「+」のような記号は、URLの組み立て方によっては半角スペースに化けてしまい、認証エラーの原因になります
  • WordPress側の関数(add_query_arg()など)は、値を自動でURLエンコードしてくれるとは限りません。特殊記号を含む文字列を扱う際は、明示的にエンコード処理を挟むと安全です

ここまでで用意できたもの

これで、Threads自動投稿に必要な準備がすべて揃いました。

  • Threads APIのアクセストークン・ユーザーID(Meta申請編)
  • アクセストークンを自動更新し続ける仕組み(本記事)

あとは、これらの値をWordPress側に登録するだけです。お好みの記事にお進みください。

仕組みを理解しながら自分でカスタマイズしたい方は【コード版】

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

まめすけ

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

このサイトはテーマ「SWELL」を使っています

「SWELL」はWordpress初心者も慣れた人も使い続けられるテーマだと思います。

よかったらシェアお願いします!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

WordPressでサイトを作り、壊し、また作る。
フリーランスとしてココナラで実案件に向き合いながら、その経験をそのまま言葉にしています。
うまくいった設定も、試したら失敗した話も、ぜんぶここに書いています。
すでにWordPressを持っていて、もう一歩進めたい人に届けば。

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次