GASと連携してWordPressで自動投稿する方法

GASを使ってWordPressの投稿を自動更新したいんだけど、どこから始めればいいのか全然わからなくて…。
猫男
猫男
catman
catman
それならcatmanに任せてくれ。GASとWordPressを連携して、投稿を自動更新する方法を教えよう。

GASとWordPressを連携する準備

GASを使ってWordPressに記事を自動投稿・更新するには、まずWordPressへアクセスするための情報を用意します。

 

GASとWordPressを連携するには、何を用意すればいいの?
猫男
猫男
catman
catman
ふっふふ、いい質問だ

 

最初に必要なのは次の3つだけ。

  • WordPressサイトURL
  • WordPressユーザー名
  • アプリケーションパスワード

 

サイトURL

まず、投稿したいWordPressサイトのURLを確認します。

例えば、読者の方が今読まれている本サイトであれば、

https://earthpg.school/

がサイトURLにあたります。

 

ユーザー名

次に、WordPressにログインするユーザー名を確認します。

WordPress管理画面の左メニューから、以下の順番で確認できます。

 

wordpress gas 連携

 

  1. WordPressダッシュボードにログインします。
  2. 「ユーザー」を開きます。
  3. 投稿に使いたいユーザーを確認します。

 

つまり、いつもログインで使ってるあのユーザー名ですね。

 

アプリケーションパスワード

最後に、コレがいちばんの山場です。

通常のログインパスワードをそのままGASに書くのではなく、外部連携用の専用パスワードを発行して使います。

その「専用パスワード」がアプリケーションパスワードというですね。

 

  1. WordPressダッシュボードにログインします。
  2. 「ユーザー」から「プロフィール」を開きます。
  3. 下の方にある「アプリケーションパスワード」を探します。
  4. 名前に「test」などと入力します。
  5. 「新しいアプリケーションパスワードを追加」をクリックします。
  6. 表示されたパスワードをコピーして保存します。

 

wordpress gas 連携

 

アプリケーションパスワードは、一度しか表示されません。

あとで確認できないため、発行したらすぐにメモしておきましょう。

 

GASを使ってWordPressの投稿を自動更新する方法

準備が整ったら、次のスクリプトを書いてみましょう。


function updateWordPressPost() {
  const siteUrl = "https://your-wordpress-site.com";

  const username = "your_username";
  const appPassword = "xxxx xxxx xxxx xxxx xxxx xxxx";

  const url = siteUrl + "/wp-json/wp/v2/posts/";

  const payload = {
    title: "新しいタイトル",
    content: "ここには更新したい内容を入れます。",
    status: "publish"
  };

  const token = Utilities.base64Encode(username + ":" + appPassword);

  const options = {
    method: "post",
    contentType: "application/json",
    headers: {
      Authorization: "Basic " + token
    },
    payload: JSON.stringify(payload),
    muteHttpExceptions: true
  };

  const response = UrlFetchApp.fetch(url, options);

  Logger.log(response.getResponseCode());
  Logger.log(response.getContentText());
}

UrlFetchApp.fetch()を使用してWordPressのAPIにアクセスします。

必要な情報をpayloadにまとめ、POSTリクエストとして送信します。

 

それぞれ、以下のように置き換えてください。

コード内の項目 ここに入れるもの 入力例
siteUrl WordPressサイトのURL https://example.com
username WordPressのユーザー名 earthpg
appPassword 発行したアプリケーションパスワード abcd efgh ijkl mnop qrst uvwx

 

なお、コード内の status: "publish" は、記事を公開状態で投稿・更新するという意味です。

そのため、このまま実行するとWordPress上で記事が公開されます。

まずテストしたい場合や、すぐに公開したくない場合は、次のように draft に変更してください。

status: "draft"

draft にすると、記事は下書きとして保存されます。

最初は安全のため、status: "draft" で動作確認するのがおすすめです。

 

このコードを実行すると、記事はすぐ公開されるの?
猫男
猫男
catman
catman
ああ。下書きで保存したい場合は、status: "draft" に変更しよう。

 

試しに実行してみると、

wordpress gas 連携

きましたね。

すっぽり入ってます。

 

スクリプトで記事を書くって気持ちい・・・!ストレスフリー
猫男
猫男
catman
catman
そうだ。その感覚を忘れるなよ
少しずつだけど、GASとWordPressの連携が理解できてきたかも!catman、ありがとう!
猫男
猫男
catman
catman
その調子だ。慣れてきたらもっと複雑なスクリプトも試してみよう。成功を祈っているよ。

EARTHPG 自動化研究所

「その作業、仕組みにできます。」

Google Apps Script、Python、スプレッドシート自動化、WordPress開発、 API連携、AI活用まで対応。 小さな自動化から業務全体の設計まで、研究所が支援します。