Запуск Google Apps Script в HTML: Полное руководство

Что такое Google Apps Script?

Google Apps Script (GAS) – это облачная платформа разработки, позволяющая автоматизировать задачи и расширять функциональность сервисов Google Workspace (Sheets, Docs, Forms, Gmail и т.д.). GAS основан на JavaScript и позволяет создавать веб-приложения, настраиваемые меню, триггеры, интеграции и многое другое.

Преимущества использования Google Apps Script с HTML

Использование Google Apps Script вместе с HTML предоставляет мощный способ создания интерактивных веб-приложений, взаимодействующих с сервисами Google. Преимущества включают:

  • Интеграция с Google Workspace: Бесшовная интеграция с Sheets, Docs, Forms и другими сервисами.
  • Облачная разработка: Нет необходимости в локальной настройке среды разработки.
  • Быстрая разработка: JavaScript-подобный синтаксис упрощает создание и отладку кода.
  • Бесплатное использование: Для большинства задач платформа бесплатна.

Сценарии использования: от простых форм до сложных веб-приложений

GAS и HTML могут быть использованы в различных сценариях:

  • Создание форм для сбора данных и записи их в Google Sheets.
  • Разработка пользовательских панелей управления для анализа данных.
  • Автоматизация рассылки электронных писем на основе данных из Google Sheets.
  • Интеграция с внешними API для получения и обработки данных.
  • Разработка интерактивных калькуляторов и инструментов.

Настройка проекта Google Apps Script

Создание нового проекта Apps Script

Создать проект GAS можно несколькими способами:

  1. Непосредственно из Google Sheets/Docs/Forms, выбрав Инструменты > Редактор скриптов.
  2. Перейдя на сайт script.google.com и нажав New Project.

Настройка прав доступа и разрешений

При первом запуске скрипта, взаимодействующего с сервисами Google, потребуется предоставить необходимые разрешения. GAS запросит доступ к сервисам, которые используются в коде.

Подключение к Google Sheets, Docs и другим сервисам Google

Для работы с сервисами Google используются встроенные объекты и методы. Например, для работы с Google Sheets:

/**
 * Получает активную таблицу Google Sheets.
 * @returns {GoogleAppsScript.Spreadsheet.Spreadsheet} Активная таблица.
 */
function getActiveSpreadsheet(): GoogleAppsScript.Spreadsheet.Spreadsheet {
  return SpreadsheetApp.getActiveSpreadsheet();
}

/**
 * Получает лист с указанным именем из таблицы.
 * @param {GoogleAppsScript.Spreadsheet.Spreadsheet} spreadsheet Таблица.
 * @param {string} sheetName Имя листа.
 * @returns {GoogleAppsScript.Spreadsheet.Sheet | null} Лист, или null, если не найден.
 */
function getSheetByName(spreadsheet: GoogleAppsScript.Spreadsheet.Spreadsheet, sheetName: string): GoogleAppsScript.Spreadsheet.Sheet | null {
  return spreadsheet.getSheetByName(sheetName);
}

Создание HTML-интерфейса

Основы HTML для Google Apps Script

GAS позволяет создавать HTML-страницы, которые будут отображаться в браузере. Используется стандартный HTML, CSS и JavaScript.

Проектирование простого HTML-шаблона

HTML-шаблон содержит структуру и контент страницы.

<!DOCTYPE html>
<html>
<head>
  <title>Мое веб-приложение</title>
</head>
<body>
  <h1>Привет, мир!</h1>
  <p>Это простое веб-приложение, созданное с использованием Google Apps Script и HTML.</p>
</body>
</html>

Использование HTML, CSS и JavaScript

CSS используется для стилизации элементов, а JavaScript – для добавления интерактивности.

Запуск Google Apps Script из HTML

Метод doGet() и doPost()

Для отображения HTML-страницы необходимо реализовать функцию doGet() в GAS. Если требуется обработка данных из формы, используется функция doPost().

/**
 * Обрабатывает GET-запрос и возвращает HTML-страницу.
 * @param {GoogleAppsScript.Events.DoGet} e Объект события GET.
 * @returns {GoogleAppsScript.HTML.HtmlOutput} HTML-страница.
 */
function doGet(e: GoogleAppsScript.Events.DoGet): GoogleAppsScript.HTML.HtmlOutput {
  return HtmlService.createHtmlOutputFromFile('index');
}

Использование google.script.run для вызова функций Apps Script

google.script.run позволяет вызывать функции GAS из JavaScript, выполняющегося в браузере.

// HTML (внутри <script> тега)
function callAppsScriptFunction(inputData: string) {
  google.script.run.withSuccessHandler(function(result) {
    console.log('Результат:', result);
  }).processData(inputData);
}

// Apps Script
function processData(data: string): string {
  return 'Обработанные данные: ' + data;
}

Передача данных между HTML и Apps Script

Данные передаются в виде параметров функций. В JavaScript передаются любые типы данных, которые могут быть сериализованы в JSON.

Обработка результатов и ошибок

Функции withSuccessHandler() и withFailureHandler() позволяют обрабатывать результаты и ошибки вызовов google.script.run.

Примеры кода и практические реализации

Создание формы для записи данных в Google Sheets

<!DOCTYPE html>
<html>
<head>
  <title>Форма для записи в Google Sheets</title>
</head>
<body>
  <form id="myForm">
    <label for="name">Имя:</label><br>
    <input type="text" id="name" name="name"><br><br>
    <label for="email">Email:</label><br>
    <input type="email" id="email" name="email"><br><br>
    <button type="button" onclick="submitForm()">Отправить</button>
  </form>

  <script>
    function submitForm() {
      const name = document.getElementById('name').value;
      const email = document.getElementById('email').value;

      google.script.run
        .withSuccessHandler(function(result) {
          alert(result);
          document.getElementById('myForm').reset();
        })
        .withFailureHandler(function(error) {
          alert('Ошибка: ' + error);
        })
        .writeData(name, email);
    }
  </script>
</body>
</html>
function writeData(name: string, email: string): string {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName('Лист1');

  if (sheet) {
    sheet.appendRow([name, email, new Date()]);
    return 'Данные успешно записаны!';
  } else {
    return 'Лист не найден!';
  }
}

Реализация простого калькулятора

(Этот пример демонстрирует взаимодействие HTML и GAS для выполнения простых вычислений)

Отправка электронных писем из HTML-формы через Apps Script

(Этот пример показывает, как данные, введенные в HTML форму, могут быть использованы для отправки персонализированных email через GAS)

Продвинутые техники и советы

Использование шаблонов HTML (HTML Service)

HTML Service позволяет создавать динамические HTML-страницы, используя шаблоны и подстановку данных.

Асинхронные вызовы и обработка callback-функций

google.script.run выполняет вызовы асинхронно. Использование withSuccessHandler() и withFailureHandler() необходимо для обработки результатов и ошибок.

Работа с библиотеками JavaScript в Apps Script

GAS позволяет использовать библиотеки JavaScript, добавляя их в проект.

Оптимизация производительности

  • Минимизируйте количество вызовов к сервисам Google.
  • Используйте кэширование.
  • Оптимизируйте HTML и JavaScript код.

Отладка и тестирование

Использование логов Apps Script

Logger.log() позволяет записывать сообщения в журнал выполнения скрипта. console.log() (в браузере).

Инструменты разработчика в браузере

Используйте инструменты разработчика в Chrome, Firefox или другом браузере для отладки JavaScript кода.

Тестирование пользовательского интерфейса

Протестируйте интерфейс на разных устройствах и в разных браузерах.

Развертывание и публикация веб-приложения

Настройка параметров развертывания

Перед публикацией необходимо настроить параметры развертывания (кто имеет доступ, от чьего имени запускается).

Публикация веб-приложения для разных пользователей

Можно опубликовать веб-приложение для себя, для определенных пользователей или для всех в интернете.

Управление версиями

При каждом изменении кода рекомендуется создавать новую версию веб-приложения.

Заключение

Обзор изученного материала

В этой статье мы рассмотрели основы использования Google Apps Script с HTML для создания веб-приложений, взаимодействующих с сервисами Google. Мы научились создавать HTML-интерфейс, вызывать функции GAS из HTML, передавать данные и обрабатывать результаты.

Рекомендации для дальнейшего изучения

  • Изучите документацию Google Apps Script.
  • Попробуйте реализовать более сложные проекты.
  • Используйте библиотеки JavaScript для расширения функциональности.

Полезные ресурсы и ссылки


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