Как создавать веб-приложения с помощью Google Apps Script?

Что такое Google Apps Script и его преимущества для создания веб-приложений

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

Преимущества использования Google Apps Script для создания веб-приложений:

Простота и доступность: GAS использует JavaScript, что делает его относительно простым для освоения, особенно для тех, кто уже знаком с веб-разработкой.

Интеграция с Google Workspace: Полная интеграция с сервисами Google позволяет легко работать с данными и автоматизировать рабочие процессы.

Облачная платформа: GAS работает в облаке, что избавляет от необходимости поддерживать собственные серверы и инфраструктуру.

Бесплатность: Использование GAS бесплатно в рамках квот Google.

Быстрая разработка: Можно быстро создавать прототипы и разворачивать веб-приложения.

Области применения веб-приложений на Google Apps Script

Веб-приложения на Google Apps Script можно использовать для решения широкого спектра задач. Вот несколько примеров:

Автоматизация задач: Автоматизация рутинных задач, таких как обработка данных в Google Sheets, создание отчетов, рассылка уведомлений по электронной почте.

Интеграция с внешними сервисами: Интеграция с различными API для получения данных и автоматизации взаимодействий.

Создание пользовательских интерфейсов: Разработка веб-форм для сбора данных, интерактивных отчетов и dashboards.

Реализация бизнес-логики: Создание пользовательских бизнес-приложений для управления проектами, отслеживания продаж, учета рабочего времени и т.д.

Расширения для Google Workspace: Добавление функциональности в Google Sheets, Docs, Forms и другие сервисы.

Например, можно создать веб-приложение для автоматической генерации отчетов по рекламным кампаниям в Google Ads, которое будет собирать данные из API Google Ads, обрабатывать их и представлять в виде интерактивной панели управления.

Необходимые инструменты и настройка окружения

Для разработки веб-приложений на Google Apps Script вам понадобятся:

Аккаунт Google: Для доступа к Google Apps Script.

Браузер: Современный браузер (Chrome, Firefox, Safari).

Редактор кода Google Apps Script: Встроенный редактор кода, доступный через Google Sheets, Docs или напрямую через script.google.com.

Настройка окружения:

Откройте Google Sheets, Docs или Forms.

Выберите Инструменты -> Редактор скриптов.

Откроется редактор кода Google Apps Script.

Создание простого веб-приложения: «Hello, World!»

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

Откройте редактор скриптов Google Apps Script, как описано выше. По умолчанию будет создан пустой скрипт с функцией myFunction(). Удалите эту функцию и начнем с чистого листа.

Написание кода для обработки запроса и возврата ответа

Для создания веб-приложения необходимо написать функцию, которая будет обрабатывать HTTP-запросы и возвращать HTML-ответ. Вот пример кода для создания простого веб-приложения «Hello, World!»:

/**
 * @OnlyCurrentDoc
 */

/**
 * Обрабатывает GET-запрос и возвращает HTML-страницу с приветствием.
 * @returns {HtmlOutput} HTML-страница с приветствием.
 */
function doGet(): GoogleAppsScript.HTML.HtmlOutput {
  // Создаем HTML-страницу с приветствием.
  const output: GoogleAppsScript.HTML.HtmlOutput = HtmlService.createHtmlOutput('

Hello, World!

'); return output; }

Пояснения к коду:

/** @OnlyCurrentDoc */ — указывает, что скрипт имеет доступ только к текущему документу.

doGet() — функция, которая вызывается при получении GET-запроса.

HtmlService.createHtmlOutput('<h1>Hello, World!</h1>') — создает HTML-страницу с заголовком "Hello, World!".

return output — возвращает HTML-страницу в качестве ответа.

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

Чтобы развернуть веб-приложение, выполните следующие действия:

В редакторе скриптов выберите Развернуть -> Новое развертывание.

Выберите тип развертывания Веб-приложение.

В разделе Кто имеет доступ выберите Все (для публичного веб-приложения) или Только я (для частного использования).

Нажмите Развернуть.

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

Тестирование веб-приложения в браузере

Откройте скопированный URL в браузере. Вы должны увидеть страницу с надписью «Hello, World!».

Работа с пользовательским интерфейсом и HTML

Создание HTML-страниц для веб-приложения

В GAS можно создавать сложные HTML-страницы, используя HTML, CSS и JavaScript. Добавьте новый файл в проект Google Apps Script, выбрав Файл -> Создать -> HTML-файл. Назовите его, например, index.html.

Пример содержимого index.html:




  Мое веб-приложение
  
    body {
      font-family: sans-serif;
    }
  


  

Привет!

Это мое первое веб-приложение на Google Apps Script.

Затем измените функцию doGet() в файле Code.gs:

function doGet(): GoogleAppsScript.HTML.HtmlOutput {
  return HtmlService.createHtmlOutputFromFile('index');
}
Реклама

Эта функция загружает HTML-файл index.html и возвращает его в качестве ответа.

Использование Template HTML для динамической генерации контента

Template HTML позволяет динамически генерировать контент на стороне сервера. Используйте <? ... ?> для включения кода GAS в HTML-файл.

Пример:




  Динамический контент


  

Привет, !

В файле Code.gs:

function doGet(): GoogleAppsScript.HTML.HtmlOutput {
  const template: GoogleAppsScript.HTML.HtmlTemplate = HtmlService.createTemplateFromFile('index');
  template.userName = 'Иван';
  return template.evaluate();
}

Взаимодействие между HTML и Google Apps Script (google.script.run)

google.script.run позволяет вызывать функции GAS из HTML-страницы. Это необходимо для обработки пользовательского ввода и выполнения серверных операций.

В index.html:




  Взаимодействие с GAS


  
  
    function onSuccess(message: string) {
      alert(message);
    }

    google.script.run.withSuccessHandler(onSuccess).showMessage('Привет из HTML!');
  

В Code.gs:

function showMessage(message: string): string {
  Logger.log(message);
  return 'Сообщение получено: ' + message;
}

Обработка форм и пользовательского ввода

Для обработки форм создайте форму в HTML и используйте google.script.run для отправки данных в GAS.

В index.html:




  Обработка формы


  
    
    

function submitForm() { const form = document.getElementById('myForm') as HTMLFormElement; const name = (document.getElementById('name') as HTMLInputElement).value; google.script.run.processForm(name); }

В Code.gs:

function processForm(name: string): void {
  Logger.log('Имя: ' + name);
}

Работа с данными: Google Sheets, Docs и другие сервисы Google

Чтение и запись данных в Google Sheets из веб-приложения

GAS предоставляет простой интерфейс для работы с Google Sheets.

Чтение данных:

/**
 * Считывает данные из Google Sheets.
 */
function readDataFromSheet(): any[][] {
  // ID таблицы
  const spreadsheetId: string = 'YOUR_SPREADSHEET_ID';
  // Название листа
  const sheetName: string = 'Sheet1';

  // Открываем таблицу и получаем лист
  const spreadsheet: GoogleAppsScript.Spreadsheet.Spreadsheet = SpreadsheetApp.openById(spreadsheetId);
  const sheet: GoogleAppsScript.Spreadsheet.Sheet = spreadsheet.getSheetByName(sheetName);

  // Получаем данные из листа
  const data: any[][] = sheet.getDataRange().getValues();

  // Возвращаем данные
  return data;
}

Запись данных:

/**
 * Записывает данные в Google Sheets.
 * @param {any[][]} data Данные для записи.
 */
function writeDataToSheet(data: any[][]): void {
  // ID таблицы
  const spreadsheetId: string = 'YOUR_SPREADSHEET_ID';
  // Название листа
  const sheetName: string = 'Sheet1';

  // Открываем таблицу и получаем лист
  const spreadsheet: GoogleAppsScript.Spreadsheet.Spreadsheet = SpreadsheetApp.openById(spreadsheetId);
  const sheet: GoogleAppsScript.Spreadsheet.Sheet = spreadsheet.getSheetByName(sheetName);

  // Получаем последнюю строку
  const lastRow: number = sheet.getLastRow();

  // Записываем данные в лист, начиная со следующей строки
  sheet.getRange(lastRow + 1, 1, data.length, data[0].length).setValues(data);
}

Создание и редактирование документов Google Docs

Аналогично Sheets, GAS позволяет создавать и редактировать документы Google Docs.

Создание документа:

/**
 * Создает новый документ Google Docs.
 * @param {string} documentName Название документа.
 * @returns {GoogleAppsScript.Document.Document} Созданный документ.
 */
function createDocument(documentName: string): GoogleAppsScript.Document.Document {
  const document: GoogleAppsScript.Document.Document = DocumentApp.create(documentName);
  return document;
}

Редактирование документа:

/**
 * Добавляет текст в документ Google Docs.
 * @param {string} documentId ID документа.
 * @param {string} text Текст для добавления.
 */
function addTextToDocument(documentId: string, text: string): void {
  const document: GoogleAppsScript.Document.Document = DocumentApp.openById(documentId);
  const body: GoogleAppsScript.Document.Body = document.getBody();
  body.appendParagraph(text);
}

Интеграция с другими сервисами Google (Calendar, Drive, Gmail)

GAS поддерживает интеграцию с множеством других сервисов Google. Например, можно создавать события в Google Calendar, загружать файлы на Google Drive или отправлять электронные письма через Gmail.

Пример: отправка email через Gmail:

/**
 * Отправляет email через Gmail.
 * @param {string} recipient Email получателя.
 * @param {string} subject Тема письма.
 * @param {string} body Тело письма.
 */
function sendEmail(recipient: string, subject: string, body: string): void {
  GmailApp.sendEmail(recipient, subject, body);
}

Расширенные возможности и продвинутые техники

Использование библиотеки ScriptDb для хранения данных

ScriptDb – устаревшая, но все еще иногда используемая библиотека для хранения данных в GAS. Рекомендуется использовать более современные альтернативы, такие как Google Cloud SQL или Firebase.

Пример (ScriptDb, устаревший):

//Устаревший пример!
function saveData(key: string, value: any): void {
  const db: any = ScriptDb.get('myDatabase');
  db.save({key: key, value: value});
}

Обработка ошибок и отладка веб-приложений

Для обработки ошибок используйте блоки try...catch. Для отладки используйте Logger.log() для вывода информации в консоль редактора скриптов.

try {
  // Код, который может вызвать ошибку
  const result: number = 10 / 0;
  Logger.log(result);
} catch (e) {
  // Обработка ошибки
  Logger.log('Произошла ошибка: ' + e);
}

Безопасность веб-приложений на Google Apps Script (авторизация, обработка данных)

Авторизация: Убедитесь, что ваши веб-приложения запрашивают только необходимые разрешения. Проверяйте права доступа пользователей.

Обработка данных: Тщательно проверяйте и фильтруйте пользовательский ввод, чтобы предотвратить XSS-атаки и другие уязвимости.

Оптимизация производительности и масштабирование веб-приложений

Кэширование: Используйте кэширование для хранения часто используемых данных.

Оптимизация кода: Пишите эффективный код, избегайте излишних операций.

Асинхронные операции: Используйте асинхронные операции, чтобы не блокировать интерфейс пользователя.

Использование сервиса Lock: Сервис Lock помогает предотвратить конфликты при одновременном доступе к ресурсам из разных экземпляров скрипта.


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