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

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

GASとWordPressを連携する準備

GASを使ってWordPressに自動で投稿を更新するためには、まず連携の準備が必要です。

WordPressの設定

WordPress側でAPIを利用するための準備をします。基本的な手順は以下の通りです。

  1. WordPressダッシュボードにログインします。
  2. 「設定」から「パーマリンク」を選択し、構造が正しいことを確認します。
  3. 「ユーザー」の「プロファイル」でアプリケーションパスワードを設定します。これにより、GASからのアクセスが可能になります。

Google Apps Scriptの準備

次に、GAS側の準備を行います。

  1. Google Apps Scriptにアクセスし、新しいプロジェクトを作成します。
  2. プロジェクトに必要なGoogleサービスとOAuth接続を設定します。

 

GASでの設定がちょっと難しそう…アプリケーションパスワードって何?
猫男
猫男
catman
catman
簡単に言うと、GASがWordPressに安全にアクセスするための鍵さ。心配しなくていい、設定手順に従えば大丈夫だ。

GASスクリプトの実装

WordPressと連携するために、実際のスクリプトを書いてみましょう。

HTTPリクエストを送信する

GASからWordPressへHTTPリクエストを送って、自動で投稿を更新します。


function updateWordPressPost() {
   const url = "https://your-wordpress-site.com/wp-json/wp/v2/posts/1";
   const payload = {
      title: "新しいタイトル",
      content: "ここには更新したい内容を入れます。",
      status: "publish"
   };
   const options = {
      method: "POST",
      headers: {
         "Authorization": "Basic " + Utilities.base64Encode("username:application_password"),
         "Content-Type": "application/json"
      },
      payload: JSON.stringify(payload)
   };

   const response = UrlFetchApp.fetch(url, options);
   Logger.log(response.getContentText());
}

UrlFetchApp.fetch()を使用してWordPressのAPIにアクセスします。必要な情報をpayloadにまとめ、POSTリクエストとして送信します。

 

スクリプトってこんな風に書くんですね!でも何をしているのか理解しないと…。
猫男
猫男
catman
catman
焦ることはないさ。しっかりと順を追っていけばわかるようになる。今回はWordPressに投稿を更新するために必要なデータを設定しているんだ。

まとめと注意点

GASとWordPressを連携して投稿を自動更新する手順を理解できましたか?

  • WordPressの設定でAPI準備が必須。
  • GASから安全にリクエストを送信するには、適切な設定とスクリプトが必要。
  • スクリプト内のユーザー名とアプリケーションパスワードの管理に注意しましょう。

 

練習問題

次のシナリオを使って、GASのスクリプトを作成してください:

  1. WordPressの投稿IDが2である記事のコンテンツを「これは更新された投稿です」に変更し、タイトルは「更新後のタイトル」にします。
  2. 投稿のステータスは「draft」に設定してください。

 
 

練習問題の解答・解説


function updateWordPressDraft() {
   const url = "https://your-wordpress-site.com/wp-json/wp/v2/posts/2";
   const payload = {
      title: "更新後のタイトル",
      content: "これは更新された投稿です。",
      status: "draft"
   };
   const options = {
      method: "POST",
      headers: {
         "Authorization": "Basic " + Utilities.base64Encode("username:application_password"),
         "Content-Type": "application/json"
      },
      payload: JSON.stringify(payload)
   };

   const response = UrlFetchApp.fetch(url, options);
   Logger.log(response.getContentText());
}
  • 関数updateWordPressDraftは、指定された投稿ID「2」の情報を更新します。
  • titlecontentの内容を変更し、statusを「draft」状態に設定しています。
  • AuthorizationヘッダーでWordPressのAPIにアクセスするための認証情報を含めています。
少しずつだけど、GASとWordPressの連携が理解できてきたかも!catman、ありがとう!
猫男
猫男
catman
catman
その調子だ。慣れてきたらもっと複雑なスクリプトも試してみよう。成功を祈っているよ。