Что такое Google Apps Script и для чего он нужен?
Google Apps Script (GAS) – это облачная платформа разработки, основанная на JavaScript, которая позволяет автоматизировать задачи и расширять функциональность приложений Google Workspace (Sheets, Docs, Slides, Forms, Gmail и др.). GAS даёт возможность создавать собственные решения, интегрированные непосредственно в экосистему Google, без необходимости развертывания внешних серверов или инфраструктуры. Он предоставляет доступ к API Google и позволяет взаимодействовать с внешними сервисами через HTTP-запросы.
Преимущества использования Google Apps Script
Простота использования: Основан на JavaScript, что делает его доступным для широкого круга разработчиков.
Интеграция с Google Workspace: Бесшовная интеграция с сервисами Google обеспечивает мощные возможности автоматизации.
Облачная платформа: Код выполняется в облаке, не требуя локальной установки или настройки.
Автоматизация рутинных задач: Сокращение времени и усилий, затрачиваемых на повторяющиеся операции.
Расширение функциональности Google Workspace: Добавление пользовательских функций и возможностей, недоступных в стандартных приложениях.
Области применения Google Apps Script: примеры задач
GAS может быть использован для решения широкого спектра задач. Вот несколько примеров:
Автоматизация отчетности в Google Sheets: Например, можно автоматически собирать данные из различных источников (Google Analytics, рекламные платформы) и формировать отчеты, отправляемые по расписанию.
/**
* Функция для автоматической генерации отчетов по данным Google Analytics.
* @param {string} accountId - ID аккаунта Google Analytics.
* @param {string} webPropertyId - ID ресурса Google Analytics.
* @param {string} profileId - ID представления Google Analytics.
* @return {void}
*/
function generateAnalyticsReport(accountId: string, webPropertyId: string, profileId: string): void {
// Получаем данные из Google Analytics API
const data = Analytics.Data.Ga.get(
'ga:' + profileId,
'30daysAgo',
'today',
'ga:sessions,ga:pageviews',
{ 'dimensions': 'ga:date' }
);
// Создаем новый лист в Google Sheets
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.insertSheet('Analytics Report - ' + new Date().toLocaleDateString());
// Записываем заголовки
sheet.getRange(1, 1, 1, 3).setValues([['Date', 'Sessions', 'Pageviews']]);
// Записываем данные
const rows = data.getRows();
if (rows) {
for (let i = 0; i < rows.length; i++) {
const row = rows[i];
sheet.getRange(i + 2, 1, 1, 3).setValues([[row[0], row[1], row[2]]]);
}
}
Logger.log('Отчет успешно сгенерирован!');
}
Персонализация email-рассылок в Gmail: Можно создавать скрипты, которые отправляют персонализированные письма на основе данных из Google Sheets или Google Contacts.
Автоматическая обработка заявок из Google Forms: Скрипты могут автоматически сохранять данные из форм в Google Sheets, отправлять уведомления и запускать другие действия.
Интеграция с внешними API: Например, можно интегрировать Google Sheets с API сервисов контекстной рекламы (Google Ads, Yandex.Direct) для автоматического получения и анализа данных.
Начало работы с Google Apps Script
Открытие редактора Google Apps Script
Есть несколько способов открыть редактор GAS:
Из приложения Google Workspace: В Google Sheets, Docs или Forms выберите «Инструменты» > «Редактор скриптов».
Через прямой доступ: Перейдите по адресу script.google.com.
Интерфейс редактора: основные элементы и функции
Редактор GAS имеет простой и интуитивно понятный интерфейс. Основные элементы:
Редактор кода: Область для написания и редактирования кода скрипта.
Панель инструментов: Содержит кнопки для сохранения, запуска, отладки и публикации скрипта.
Редактор триггеров: Позволяет настроить автоматический запуск скрипта по расписанию или при наступлении определенных событий.
Лог выполнения: Отображает сообщения отладки и ошибки.
Создание и сохранение первого скрипта
Откройте редактор GAS.
Введите простой код, например:
/**
* Функция для записи сообщения в лог.
* @return {void}
*/
function myFunction(): void {
Logger.log('Привет, мир!');
}
Нажмите кнопку «Сохранить» (значок дискеты) и введите имя скрипта.
Нажмите кнопку «Выполнить» (значок треугольника).
Проверьте лог выполнения (Вид > Журнал), чтобы увидеть сообщение «Привет, мир!».
Основы синтаксиса JavaScript для Google Apps Script
GAS использует JavaScript как основной язык программирования. Вам потребуется знание:
Переменные: var, let, const.
Типы данных: string, number, boolean, object, array, null, undefined.
Операторы: +, -, *, /, =, ==, !=, >, <, >=, <=.
Условные операторы: if, else if, else.
Циклы: for, while, do...while.
Функции: function.
Объекты: Создание и манипулирование объектами.
/**
* Пример использования различных типов данных и операторов.
* @return {void}
*/
function example(): void {
const name: string = 'Иван';
let age: number = 30;
const isMarried: boolean = true;
if (age > 18) {
Logger.log(name + ' - совершеннолетний.');
} else {
Logger.log(name + ' - несовершеннолетний.');
}
for (let i: number = 0; i < 5; i++) {
Logger.log('Итерация: ' + i);
}
}
Работа с Google Sheets
Чтение данных из Google Sheets
Используйте класс SpreadsheetApp для доступа к таблицам Google Sheets.
/**
* Функция для чтения данных из Google Sheets.
* @param {string} spreadsheetId - ID таблицы Google Sheets.
* @param {string} sheetName - Название листа.
* @return {any[][]} - Двумерный массив данных.
*/
function readDataFromSheet(spreadsheetId: string, sheetName: string): any[][] {
const ss = SpreadsheetApp.openById(spreadsheetId);
const sheet = ss.getSheetByName(sheetName);
const dataRange = sheet.getDataRange();
const values = dataRange.getValues();
return values;
}
Запись данных в Google Sheets
/**
* Функция для записи данных в Google Sheets.
* @param {string} spreadsheetId - ID таблицы Google Sheets.
* @param {string} sheetName - Название листа.
* @param {any[][]} data - Двумерный массив данных для записи.
* @return {void}
*/
function writeDataToSheet(spreadsheetId: string, sheetName: string, data: any[][]): void {
const ss = SpreadsheetApp.openById(spreadsheetId);
const sheet = ss.getSheetByName(sheetName);
const lastRow = sheet.getLastRow();
const numRows = data.length;
const numCols = data[0].length;
sheet.getRange(lastRow + 1, 1, numRows, numCols).setValues(data);
}
Форматирование данных и работа с диапазонами
GAS предоставляет методы для форматирования ячеек, установки шрифтов, цветов и т.д.
/**
* Функция для форматирования диапазона ячеек.
* @param {string} spreadsheetId - ID таблицы Google Sheets.
* @param {string} sheetName - Название листа.
* @param {string} range - Диапазон ячеек для форматирования (например,