Google Apps Script предоставляет мощные инструменты для автоматизации задач и интеграции с другими сервисами Google. Одним из распространенных применений является создание HTML-страниц или писем с изображениями. Вставка изображений в HTML с помощью Google Apps Script позволяет создавать динамический и визуально привлекательный контент.
Зачем использовать Google Apps Script для вставки изображений в HTML?
Автоматизация: Google Apps Script позволяет автоматизировать процесс создания и отправки HTML-писем или страниц с изображениями.
Динамический контент: Изображения могут быть динамически выбраны и вставлены в зависимости от различных условий, например, данных из Google Sheets.
Интеграция: Google Apps Script легко интегрируется с другими сервисами Google, такими как Google Drive, Gmail и Sheets.
Обзор процесса: от хранения изображения до отображения в HTML
Процесс вставки изображения в HTML с использованием Google Apps Script состоит из нескольких этапов:
Хранение изображения: Изображение необходимо хранить в доступном месте, например, в Google Drive или на веб-хостинге.
Получение URL изображения: Необходимо получить URL-адрес изображения, чтобы его можно было использовать в HTML-коде.
Создание HTML-шаблона: Создается HTML-шаблон, в который будет вставлено изображение.
Передача URL в шаблон: URL-адрес изображения передается в HTML-шаблон из Google Apps Script.
Отображение HTML: HTML-код отображается в виде веб-страницы или отправляется по электронной почте.
Подготовка изображения и его хранение
Выбор места хранения изображения: Google Drive или веб-хостинг
Изображение можно хранить в Google Drive или на веб-хостинге.
Google Drive: Простое и удобное решение для хранения изображений, особенно если они уже находятся в вашей экосистеме Google. Требуется настройка доступа, чтобы изображение было доступно публично.
Веб-хостинг: Предоставляет более гибкие возможности управления изображениями и не требует настройки доступа, если изображение размещено на общедоступном веб-сервере.
Получение URL изображения в Google Drive
Для получения URL изображения в Google Drive необходимо выполнить следующие шаги:
Загрузите изображение в Google Drive.
Откройте доступ к файлу для всех, у кого есть ссылка (или для конкретных пользователей).
Получите идентификатор файла (file ID) из URL-адреса файла.
Используйте следующий URL для получения прямого доступа к изображению: https://drive.google.com/uc?export=view&id=[FILE_ID], где [FILE_ID] — это идентификатор вашего файла.
/**
* @param {string} fileId Идентификатор файла в Google Drive.
* @return {string} URL изображения для использования в HTML.
*/
function getImageUrl(fileId: string): string {
return `https://drive.google.com/uc?export=view&id=${fileId}`;
}
// Пример использования:
const fileId: string = "1234567890abcdefg"; // Замените на ваш file ID
const imageUrl: string = getImageUrl(fileId);
Logger.log(imageUrl);Оптимизация изображения для веб-использования
Размер файла: Уменьшите размер файла изображения, чтобы ускорить загрузку страницы. Используйте инструменты для сжатия изображений без потери качества.
Формат изображения: Используйте подходящий формат изображения. JPEG подходит для фотографий, а PNG — для изображений с прозрачностью и графики.
Размеры изображения: Подберите размеры изображения, соответствующие его отображению на странице, чтобы избежать масштабирования браузером.
Создание HTML-шаблона с использованием Google Apps Script
Использование HTML-сервиса для создания HTML-кода
Google Apps Script предоставляет HTML-сервис для создания HTML-кода. Используйте HtmlService для создания и обработки HTML-шаблонов.
Вставка тега
в HTML-шаблон
Вставьте тег <img> в HTML-шаблон, указав атрибут src для указания URL-адреса изображения.

Передача URL изображения в HTML-шаблон из Google Apps Script
Используйте функцию HtmlService.createTemplateFromFile() для создания HTML-шаблона из файла. Затем, используйте свойство [template].imageUrl чтобы установить URL-адрес изображения и сгенерируйте HTML с помощью [template].evaluate().getContent().
/**
* Создает HTML-страницу с изображением.
* @param {string} imageUrl URL изображения.
* @return {string} HTML-код страницы.
*/
function createHtmlPage(imageUrl: string): string {
const template = HtmlService.createTemplateFromFile('index');
template.imageUrl = imageUrl;
return template.evaluate().getContent();
}Создайте файл index.html в редакторе Google Apps Script с следующим содержимым:
<img src="" alt="Мое изображение">
Примеры кода для вставки изображения
Простой пример: статическое изображение из Google Drive
function displayStaticImage() {
const fileId: string = "1234567890abcdefg"; // Замените на ваш file ID
const imageUrl: string = getImageUrl(fileId);
const htmlOutput: string = createHtmlPage(imageUrl);
// Отображение HTML в диалоговом окне
HtmlService.createHtmlOutput(htmlOutput)
.setWidth(600)
.setHeight(400)
.setTitle('Изображение из Google Drive')
.show();
}Динамическая вставка изображения: использование переменных
/**
* Динамически выбирает URL изображения на основе условия.
* @param {boolean} condition Условие для выбора изображения.
* @return {string} URL выбранного изображения.
*/
function getDynamicImageUrl(condition: boolean): string {
const imageUrl1: string = "https://example.com/image1.jpg";
const imageUrl2: string = "https://example.com/image2.jpg";
return condition ? imageUrl1 : imageUrl2;
}
function displayDynamicImage() {
const condition: boolean = true; // Замените на ваше условие
const imageUrl: string = getDynamicImageUrl(condition);
const htmlOutput: string = createHtmlPage(imageUrl);
HtmlService.createHtmlOutput(htmlOutput)
.setWidth(600)
.setHeight(400)
.setTitle('Динамическое изображение')
.show();
}Обработка ошибок и проверка доступности изображения
Для проверки доступности изображения можно использовать UrlFetchApp:
/**
* Проверяет доступность URL.
* @param {string} url URL для проверки.
* @return {boolean} Доступен ли URL.
*/
function isUrlAvailable(url: string): boolean {
try {
const response = UrlFetchApp.fetch(url, {muteHttpExceptions: true});
return response.getResponseCode() === 200;
} catch (e) {
Logger.log(e);
return false;
}
}
function displayImageWithCheck() {
const fileId: string = "1234567890abcdefg"; // Замените на ваш file ID
const imageUrl: string = getImageUrl(fileId);
if (isUrlAvailable(imageUrl)) {
const htmlOutput: string = createHtmlPage(imageUrl);
HtmlService.createHtmlOutput(htmlOutput)
.setWidth(600)
.setHeight(400)
.setTitle('Изображение из Google Drive')
.show();
} else {
Logger.log("Изображение недоступно по URL: " + imageUrl);
HtmlService.createHtmlOutput("Изображение недоступно.")
.setWidth(300)
.setHeight(100)
.setTitle('Ошибка')
.show();
}
}Применение: Отправка HTML-писем с изображениями
Настройка почтового сервиса Google Apps Script
Используйте GmailApp.sendEmail() для отправки писем.
Вставка HTML-шаблона с изображением в тело письма
Укажите HTML-код в параметре htmlBody функции GmailApp.sendEmail().
Отправка тестового письма и устранение неполадок
Отправьте тестовое письмо себе и убедитесь, что изображение отображается корректно. Проверьте исходный код письма, чтобы убедиться, что URL изображения указан правильно.
function sendEmailWithImage() {
const fileId: string = "1234567890abcdefg"; // Замените на ваш file ID
const imageUrl: string = getImageUrl(fileId);
const htmlBody: string = createHtmlPage(imageUrl);
GmailApp.sendEmail({
to: 'your_email@example.com',
subject: 'Тестовое письмо с изображением',
htmlBody: htmlBody
});
}