WordPress APIでメディアライブラリに画像をアップロードするGAS(Google App Script)プログラム

プログラムの概要

Google App Scriptを使用して、WordPressのAPIを利用してメディアライブラリに画像をアップロードするプログラムです。このプログラムは、Googleドライブ上に共有設定された画像ファイルをWordPressサイトに転送します。

Google App Script サンプルプログラム

function postImage() {

  // Googleドライブ上で共有設定した画像ファイルのURL
  var driveUrl = 'https://drive.google.com/uc?export=view&id=';

  // WordPress APIエンドポイント
  var siteUrl = 'https://(自身のサイトURL)/';
	var apiUrl = siteUrl + 'wp-json/wp/v2/media';
  var username = '(ユーザー名)';
  var password = '(パスワード)';

  // GoogleドライブのファイルID(画像のID)
  var fileId = '(画像ID)';
  var fileUrl = driveUrl + fileId;
  var file = DriveApp.getFileById(fileId);

  // 保存した画像に共有権を設定する (リンクを知っている全員が閲覧可)
  file.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);

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

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

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

}

Google App Scriptプログラムの解説

このプログラムでは、Googleドライブ上に共有設定された画像ファイルをWordPressサイトにアップロードします。以下にプログラムの主要な要素を解説します。

定数と変数

  • driveUrl: Googleドライブ上で共有設定した画像ファイルへのダイレクトリンク
  • siteUrl: WordPressサイトのURL
  • usernamepassword: WordPressサイトへの認証情報
  • fileId: Googleドライブの画像ファイルのID
  • apiUrl: WordPress APIのエンドポイント
  • fileUrl: Googleドライブ上の画像ファイルのURL

ファイルの取得と共有設定

DriveAppを使用してGoogleドライブ上のファイルを取得し、setSharingメソッドでリンクを知っている全員が閲覧可能となるように共有設定を変更します。

HTTPリクエストの構築

HTTPリクエストのヘッダーとオプションを構築し、UrlFetchApp.fetchメソッドでWordPressサイトにリクエストを送信します。

まとめ

このGoogle App Scriptプログラムを使用することで、Googleドライブ上の画像ファイルをWordPressのメディアライブラリに簡単にアップロードできます。注意点として、WordPressサイトの認証情報がプログラム内に平文で含まれているため、セキュリティには十分に注意してください。

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