画像生成AI:Google Drive保存設定入門
Google Apps Script(GAS)を利用して、生成した画像をGoogle Driveの特定フォルダへ自動保存するための設定手順を解説します。
学習ポイント
- GAS(Google Apps Script)を使用した自動保存スクリプトの設定方法
- Google DriveのフォルダIDの取得とスクリプトプロパティへの入力手順
- ファイル名のナンバリングルールと画像の並び順を維持する注意点
画像の生成
■シナリオが作成できたら画像生成の工程に進む
■最初にGoogleドライブに保存するためのGASを作成する
Apps Scriptを新規作成して以下のGASを入力する。
https://script.google.com/home
function doPost(e) {
try {
if (!e || !e.postData || !e.postData.contents) {
return ContentService.createTextOutput(JSON.stringify({ ok: false, error: "No POST body" }))
.setMimeType(ContentService.MimeType.JSON);
}
// リクエストの JSON をパース
var body = JSON.parse(e.postData.contents);
var filename = body.filename || ("image_" + Date.now() + ".png");
var fileUrl = body.url;
if (!fileUrl) {
throw new Error("Missing URL parameter");
}
// スクリプトプロパティからフォルダIDを取得
var props = PropertiesService.getScriptProperties();
var folderId = props.getProperty("FOLDER_ID");
if (!folderId) {
throw new Error("FOLDER_ID is not set in Script Properties");
}
var folder = DriveApp.getFolderById(folderId);
// 画像を取得して保存
var response = UrlFetchApp.fetch(fileUrl, { muteHttpExceptions: true });
if (response.getResponseCode() !== 200) {
throw new Error("Failed to download file. HTTP " + response.getResponseCode());
}
var contentType = response.getHeaders()["Content-Type"] || "image/png";
var blob = Utilities.newBlob(response.getContent(), contentType, filename);
var savedFile = folder.createFile(blob);
// 成功レスポンス
return ContentService.createTextOutput(JSON.stringify({
ok: true,
fileId: savedFile.getId(),
fileName: savedFile.getName(),
webViewLink: "https://drive.google.com/file/d/" + savedFile.getId() + "/view?usp=sharing"
})).setMimeType(ContentService.MimeType.JSON);
} catch (err) {
// エラーレスポンス
return ContentService.createTextOutput(JSON.stringify({
ok: false,
error: err.message
})).setMimeType(ContentService.MimeType.JSON);
}
}