Как вставить изображение в HTML в Google Apps Script?

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-шаблонов.

<!— wp:heading {"level": 3, "content": "\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0442\u0435\u0433\u0430 \u0432 HTML-\u0448\u0430\u0431\u043b\u043e\u043d»} —>

Вставка тега в 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
  });
}

Добавить комментарий