GASを使ってアイキャッチ画像付でWordPressに自動投稿する方法

スポンサーリンク
WordpressAPI

以前の記事でこんなことを紹介しました。

この記事ではタイトルと内容を自動投稿させるのみでしたが、

今回はアイキャッチ画像付きで自動投稿させます!

前回同様にプログラム未経験者でもコピペで実現できるように手順を紹介します。

スポンサーリンク

自動投稿できるまでの流れ

  1. WordPressにプラグイン「Application Password」をインストール&設定!
  2. GASのコードをコピーし、実行!
  3. これだけで自動投稿できます!

WordPressにプラグイン「Application Password」をインストール

前回の手順を参考にしてください!

GASを使ってWordPressに自動投稿するコード(アイキャッチ画像付)

以下の部分を書き換えることで、自分のサイトにアイキャッチ画像付で自動投稿できます!

var siteUrl = 'WordpressサイトのURL';
var user = 'ユーザ名';
var pass = 'パスワード';
var title = '自動投稿テスト';
var content = 'これは自動投稿です。';
var imageID = postImage(siteUrl, user, pass, 'アイキャッチ画像にしたい画像URL');

処理の説明

記事のタイトル・内容を投稿する処理は前回と変わりません。

アイキャッチ画像を設定するためには2つの処理が必要になります。

画像をアップロードする

画像をアップロードし、その結果をJSONで取得する処理です。

このJSONにWordPress上での画像IDが含まれています。

function postImage(siteUrl, user, pass, imageUrl) {

	var apiUrl = siteUrl + 'wp-json/wp/v2/media';

	var headers = {
		'Content-Type': 'image/png',
		'Content-Disposition': 'attachment;filename=画像のファイル名.png',
		'accept': 'application/json',
		'Authorization': 'Basic ' + Utilities.base64Encode(user + ":" + pass)
	};

	var options = {
		'method': 'POST',
		'muteHttpExceptions': true,
		'headers': headers,
		'payload': UrlFetchApp.fetch(imageUrl)
	};

	var response = UrlFetchApp.fetch(apiUrl, options);
	var responseJson = JSON.parse(response.getContentText());

	return responseJson;
}

JSONから画像IDを取得する

アップロードした結果はJSONとして、imageIDに格納されます。

WordPressでの画像IDは、imageID[“id”]これで取得できます。

WordPressAPIではIntger型で画像IDを指定するため、Number(imageID[“id”])で文字列を変換しています。

//画像をアップロードする
var imageID = postImage(siteUrl, user, pass, 'アイキャッチ画像にしたい画像URL');
//アップロードした結果の画像IDを取得
imageID = Number(imageID["id"])

実際に自動投稿してみた結果

このような感じに記事を自動投稿できます!

まとめ

アイキャッチ画像付で自動投稿できることで、一気に記事のクオリティが上がったと思います。

次はなんと・・・

アイキャッチ画像の自動生成を紹介します!

コメント

タイトルとURLをコピーしました