プログラムの概要
Google App Scriptを使用してWordPressブログに新しい記事をAPI経由で投稿するプログラムを紹介します。このプログラムは、GAS(Google App Script)を利用して手軽にWordPressのAPIを操作することができ、初心者でも理解しやすい構造になっています。
事前準備
WordPress REST APIを使用するにあたり、ウェブサーバー上でREST APIの利用制限を解除する必要があります。以下の記事ではXserver上でREST APIを開放する手順をまとめましたので、ご参照ください。
Google App Script サンプルプログラム
以下に、WordPressブログに記事を投稿するための簡単なGoogle App Scriptのサンプルコードを示します。
function postToWordPress() {
// WordPressのREST APIエンドポイント
var apiUrl = 'https://(あなたのサイトのURL)/wp-json/wp/v2/posts';
// WordPressログイン情報
var username = '(ユーザー名)'; //ログインユーザー名
var password = '(パスワード)'; //ログイン時のパスワードは使わずアプリケーションパスワードを使う
// 投稿データ
var postData = {
title: '新しいブログ投稿',
content: 'これはGoogle App Scriptを使って投稿されたブログです。',
status: 'publish', // 公開状態にする
};
// WordPressにPOSTリクエストを送信
var response = UrlFetchApp.fetch(apiUrl, {
method: 'post',
contentType: 'application/json',
payload: JSON.stringify(postData),
headers: {
Authorization: 'Basic ' + Utilities.base64Encode(username + ':' + password),
},
});
Logger.log('投稿成功: ' + response.getContentText());
}
Google App Scriptプログラムの解説
定数と変数の解説
apiUrl
: WordPressのREST APIエンドポイントを格納する変数。username
: WordPressサイトのユーザー名。password
: WordPressサイトのパスワード。Wordpressのログインパスワードを使うのはリスクが高いのでアプリケーションパスワードを使う。postData
: 投稿データ(タイトル、コンテンツ、公開状態など)を格納する変数。
関数の解説
postToWordPress()
: WordPressに記事を投稿するメインの関数。APIエンドポイント、ログイン情報、投稿データを指定し、POSTリクエストを送信する。
エラーで投稿に失敗した場合
設定に誤りがないのに、以下のエラーが出てなぜか投稿に失敗しました。
エラー: Exception: Request failed for https://yoursite.com returned code 404. Truncated server response: <!DOCTYPE html> <html lang=”ja”> <head> <meta charset=”EUC-JP” /> <title>404 File Not Found</title> <meta name=”copyright” content=”Copyright XSERV… (use muteHttpExceptions option to examine full response)
この原因がわからず苦戦しておりましたが、調査している中でワードプレスのパーマリンク構造の設定が悪さしていることがあるという情報を発見しました。パーマリンクの設定が「基本」から「数字ベース」に変更することで改善されましたので、同等のエラーが出ている方は以下の記事をご参照ください。
まとめ
この記事では、Google App Scriptを使用してWordPressブログに新しい記事を公開状態で投稿するプログラムを紹介しました。サンプルコードを通じて、基本的なAPIの操作や投稿データの構造について理解できるようにしました。WordPressブログの更新や投稿を自動化したい方にとって、GASは強力なツールとなるでしょう。