Google Apps Script(GAS)を使ってスプレッドシートに入力した記事をワードプレスに自動投稿する方法 [設定編]
Index
はじめに
WordPress(ワードプレス)でブログやサイト運営をしていると、エクセルとかスプレッドシートなどで記事を管理して自動投稿を出来ないかと思ってきました。ということでWordPressのREST APIとGoogle Apps Script使ってGoogle スプレッドシートから記事を自動投稿するまでの流れを数回に分けて具体的にまとめようと思います。
REST APIとGoogle Apps Scriptの2つは聞き慣れない人もいると思うのでちょっとだけ解説。
REST APIとは?
まず「REST API」って何?と思うのでその説明から。
ざっくりいうと「Webシステム(この場合WordPress)を外部から利用するための仕組み」です。ここでいう外部とはWordPressの管理画面にログインせずにWordPressを操作するアプリケーションやプログラムを指します。
ここに詳細がわかりやすく説明されています。
イメージ
Google Apps Scriptとは
Wikiには以下のように書いてあり、Javascriptベースの言語でGoogleの各アプリと連携が取れて便利なプラットフォームですという感じ。Gmailと連携して自動返信出来たり、Googleカレンダーと連携してスケジュールを通知したり色々と出来ます。
Google Apps Scriptとは、Googleによって開発されたスクリプトプラットフォームである軽量のアプリケーション開発のためのGoogleのワークスペースプラットフォーム。 主にGoogleのサービスを自動化するスクリプト言語である。JavaScriptがもとになっているため汎用性が高く、開発環境はGoogle Chromeだけでいいのでプログラミング初心者が始めやすい言語の1つである。
これもここがわかりやすかったので良ければ。
連携イメージ
今回のやりたいことの連携イメージ。
Googleのサービス同士である「スプレッドシート」と「Google Apps Script」を連携しすることで、スプレッドシートで管理している記事をApps Scriptで取得&WordPressに投稿するという流れ。
と簡単に説明したところで、、
スプレッドシートからWordPressに記事を投稿するために必要な諸々の初期設定を解説。
そのあと、実際に自動投稿するスクリプト(コード)も書いていきます。
WordPressを外部から操作(自動投稿)出来るようにアプリケーションパスワードを設定
WordPressの投稿を外部から行うには、まずWordPress REST APIの利用が必要です。
そこで、WordPress REST APIを利用するための設定手順を解説します。
1.WordPressの管理画面を開き、「ユーザ → プロフィール」をクリック。
プロフィールページ下部にスクロールすると「アプリケーションパスワード」の入力欄があるのでそこで設定を行います。※サイトがSSL(https)に対応していない場合は「アプリケーションパスワード」は表示されないので必ずSSL対応にしましょう。
2.「アプリケーションパスワード」を設定
アプリケーションパスワードを作成します。今回はスプレッドシートと連携するのでわかりやすく「spreadsheet」というアプリケーションパスワード名で作成。
3. 作成した「アプリケーションパスワード」をメモ
生成されたパスワードをメモ。このパスワードがあることによって外部からのリクエストをWordPress側で許可して操作することが可能になります。※このパスワードは作成時の1回だけしか表示されませんので、必ずメモなどをして管理!
これでWordPress側の設定は完了!
Google スプレッドシートで投稿記事管理シート作成
ここではGoogle スプレッドシート上でWordPressの記事を管理するためのフォーマットを作成します。
1.WordPress用記事管理フォーマットを作成
まずは実際に作成したシートはこちら
こんな感じで投稿に必要な要素を各列に用意しました。
- no : シート上で管理する為のID番号※これだけWordPressとは関係ない
- post_id : 投稿したときの記事IDが入る。初期値は空
- post_status : 公開ステータスを選べるように以下4つの項目をプルダウン形式に設定
- publish(公開)
- future(予約)
- draft(下書き)
- delete(削除)
- trash(ゴミ箱))
- post_date : 投稿したときの日時が入る。初期値は空
- post_title : 投稿記事のタイトル
- post_category: 投稿記事のカテゴリー情報。複数のときは「,(カンマ)」で区切る
- post_tags: 投稿記事のタグ情報。複数のときは「,(カンマ)」で区切る
- post_thumbnail: 投稿記事のサムネイル画像のパス
- post_content: 投稿記事の本文
※投稿のスクリプト作成のときに説明しますが、ヘッダーの各項目名はスクリプトから参照するので半角英字にしました。
GASとの連携やフォームのデータ連携などスプレッドシートをもっと詳しく使いこなしたい人は、こちらの書籍がおすすめ。
2.使い方説明
どのような使い方か説明すると、
- post_statusを「draft」にして記事をシート上で作成。「draft」にしておくと自動投稿されない。
- post_statusが「future」にすると決まった時間に記事を自動で投稿する。
- 投稿が完了したらpost_statusが自動で「publish」になり、post_id(投稿ID)とpost_date(投稿時間)も自動で記述される。
- post_statusを「delete」にすると自動でゴミ箱に入れてpost_statusが自動で「trash」になる。
という運用イメージ☝️
これでスプレッドシート側の用意は完了!
Google スプレッドシートとGoogle Apps Scriptの連携
ここまではWordPressとスプレッドシートそれぞれの準備をしてきました。
このままではそれぞれが存在するだけで何も起こらないので、スプレッドシートの記事を取り出してWordPressに投稿する処理が必要になります。そこでGoogleが提供するサービス「Google Apps Script」を使います。ってことで「スプレッドシート」と「Google Apps Script」を連携方法を解説します。
1.GoogleスプレッドシートからGoogle Apps Scritpと連携
連携したいスプレッドシートのメニューから「拡張機能 → Apps Script」をクリック。
するとApps Scriptのページの「無題のプロジェクト」が開くのでプロジェクト名をわかりやすく「WordPress自動投稿スクリプト」に名前を変更します。
これでGoogle スプレッドシートとGoogle Apps Scriptの連携は完了です!
あとは、先程、開いたプロジェクトページにスプレッドシートから記事を取得するコートど、取得した記事をWordPressに投稿するコードを書いていくだけです。
今回はスプレッドシートから直接Apps Scriptページに行きましたが下記リンクからApps Scriptのページを開くことも出来き、作成済みのプロジェクト一覧が確認出来ます。
まとめ
今回はここまでにして次は具体的にスプレッドシートから記事を取得&WordPressに投稿するコードを作成したいと思います。続き物の記事なので間が開かないようにしよう…
続きはこちら
話題のChatGPTとの連携方法