プログラムの概要
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サイトのURLusername
とpassword
: WordPressサイトへの認証情報fileId
: Googleドライブの画像ファイルのIDapiUrl
: WordPress APIのエンドポイントfileUrl
: Googleドライブ上の画像ファイルのURL
ファイルの取得と共有設定
DriveApp
を使用してGoogleドライブ上のファイルを取得し、setSharing
メソッドでリンクを知っている全員が閲覧可能となるように共有設定を変更します。
HTTPリクエストの構築
HTTPリクエストのヘッダーとオプションを構築し、UrlFetchApp.fetch
メソッドでWordPressサイトにリクエストを送信します。
まとめ
このGoogle App Scriptプログラムを使用することで、Googleドライブ上の画像ファイルをWordPressのメディアライブラリに簡単にアップロードできます。注意点として、WordPressサイトの認証情報がプログラム内に平文で含まれているため、セキュリティには十分に注意してください。