Почему я восхищаюсь Google Apps Script

Google Apps Script — диалект JavaScript для создания автоматизирующих скриптов и расширений для сервисов Google. Появился он в 2009 году и с тех пор стремительно развивается и набирает популярность. Ведь этот язык — уникальное средство автоматизации, которое доступно для использования и может быть полезно практически каждому человеку.

Для меня Google Apps Script — быстрые деньги, секретный трюк таймменджмента и одно из немногих развлечений, ради которых я готова бесплатно сидеть за компом.

В англоязычном интернет пространстве он довольно популярен: 12266 вопросов на StackOverlow. Но в России абсолютное большинство людей не знает о существовании GAS, либо их знания крайне поверхностны. На Хабре всего лишь 13 очень узкоспециальных публикаций с тегом Google Apps Script, а на русскоязычном StackOverflow только 23 вопроса по этой теме.

Я считаю, что это неправильно и ситуацию надо исправлять. Каждый человек должен иметь общее представление о возможностях Google Apps Script и быть морально готовым его использовать. Очень многим людям Google Apps Script может быть полезен. Если не в данный момент, то в обозримом будущем.

Эта статья расскажет вам о том, на что способен Google Apps Script. Надеюсь, что после ее прочтения вы осознаете магическую мощь этого языка и, если не начнете пользоваться им (большинству он нужен n-раз в год, не более), то хотя бы при случае порекомендуете своим знакомым.

С какими сервисами работает Google Apps Script?

google_apps_script_apps
На данный момент у языка есть классы и методы для работы со следующими сервисами (для каждого в скобках даны несколько из возможных примеров использования):

  • Таблицы (обработка и экспорт данных в таблицах, создание пользовательских функций);
  • Документы (создание документов, заполнение их информацией, изменение внешнего вида);
  • Формы (генерация форм на основе электронных таблиц);
  • Сайты (резервное копирование сайтов, создание новых страниц, сбор информации о комментариях и их редактирование);
  • Диск (получение списка файлов на диске и информации о них, создание новых файлов, переименование файлов и распределение по папкам, загрузка на диск новых файлов из интернета);
  • Gmail (автоответы, наведение порядка в почтовом ящике, групповые рассылки);
  • Календарь (просмотр ближайших событий, создание новых напоминаний, отправка приглашений);
  • Контакты (отбор контактов по определенному фильтру, извлечение из них телефонов, email-адресов и прочей информации);
  • Карты (создание карт, добавление на них элементов, определение адрес по координатам и наоборот);
  • Группы (получение списка групп в которых состоит человек с определенным email-адресом, получение списка пользователей конкретной группы);
  • Переводчик (перевод текста с одного языка на другой).

Один автоматизирующий скрипт может работать сразу с несколькими сервисами. К примеру, в случае приближения нужного события в календаре делать групповую рассылку по списку из таблицы. Или генерировать и переводить отчеты на основе данных из форм. Возможны тысячи комбинаций.

Это совсем не сложно

start_script_editor
В комментариях иногда пишут: «Я не хочу пользоваться Google Apps Script, так как не хочу заморачиваться с программированием». Но чтобы создавать автоматизации с помощью этого инструмента, практически не требуется умственного напряжения.

Нужно только понимать на абстрактном уровне что означают понятия: условный оператор, цикл, массив, функция, метод, объект, свойство объекта и знать английский язык/уметь пользоваться переводчиком, чтобы читать документацию, так как в ней есть множество готовых примеров кода.

Их можно копировать, комбинировать между собой, редактировать и получать в итоге успешно работающие автоматизации. И это очень быстрый процесс. Попробуйте и у вас все получится! Открываете любое из вышеперечисленных приложений, идете в пункт меню ИнструментыРедактор скриптов и вперед!

И полезно владельцам iPhone

«Офтоп, опять офтоп» — думает кто-то из читателей. Но тема Google Apps Script очень актуальна для пользователей iOS-устройств. Во-первых, у Google есть множество полезных приложений для iPhone/iPad, которые основаны на сервисах, поддерживающих GAS:

А во-вторых, можно настроить запуск автоматизаций для сервисов Google после выполнения определенных действий на iPhone: создания фотографии или контакта, изменения местоположения, включения страницы в список для чтения. Это возможно благодаря рецептам IFTTT.

IFTTT

ifttt_for_google

C помощью mush-up сервиса IFTTT (IF This Than That) можно настраивать выполнение какого-либо действия (отправка письма, размещения поста в Facebook, создание записи в таблице Google) или в случае проишествия какого-либо события (изменения погоды, достижения какой-либо цели в Fitbit, добавление новости в Pocket). Перед Новым годом на iPhones.ru о нем вышла статья 40 рецептов IFTTT для гаджетов.

IFTTT помогает подружить сервисы Google (внося записи об определенных действиях на диск) с iPhone, Android, термостатом Nest, лампочкой Lifx, кондиционером, «умной» копилкой, фитнесс-браслетом и десятками других гаджетов. А также с социальными сетями, платформами для ведения блогов, rss-каналами, облачным хранилищем и еще кучей других сервисов.

Для людей с фантазией это открывает огромный простор для творчества и улучшения своей жизни.

Триггеры и расписание

gas_triggers
Если вы не читали предыдущие статьи про Google Apps Script, то у вас может возникнуть вопрос: каким образом новый файл на диске/строка в электронной таблице, которую добавляет IFTTT, может послужить толчком к выполнению автоматизации?

Если в редакторе скриптов открыть пункт меню РесурыТриггеры текущего проекта, то можно настроить выполнение программ по времени:

  • В конкретный день и час;
  • Каждую неделю/день/месяц;
  • Каждые n минут/часов/дней.

Или при совершении следующих событий:

  • Открытие документа;
  • Изменение документа (которое может производится с помощью IFTTT);
  • Установка дополнения;
  • Отправка запроса от веб-приложения (об этом ниже).

Меню

google_script_menu
Скрипты можно запускать не только непосредственно из редактора, но и создавать для их запуска меню, который будут появляться при открытии документа в дополнение к основному интерфейсу. Вот небольшой пример кода, который показывает как это сделать:

// Устанавливаем триггер "при открытии документа"
function onOpen() {
  // Создаем меню
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Пример меню')
      // Добавляем в него пункт
      .addItem('Пункт меню', 'menuItem1')
      .addSeparator()
      // Создаем подменю и добавляем в него пункт
      .addSubMenu(ui.createMenu('Подменю')
          .addItem('Пункт подменю', 'menuItem2'))
      .addToUi();
}
// Описываем функцию, которая будет запускаться при клике на пункт основного меню
function menuItem1() {
  SpreadsheetApp.getUi() 
     .alert('Вы нажали на пункт меню');
}
// Описываем функцию, которая будет запускать при клике на пункт подменю
function menuItem2() {
  SpreadsheetApp.getUi() 
     .alert('Вы нажали на пункт подменю');
}

Веб-приложения

Еще с помощью Google Apps Script можно создавать полноценные веб-приложения с графическим интерфейсов на HTML/встраивать Google Apps Script на свои сайты. Простейшие пример: сделать на сайте форму загрузки файлов с компьютера на Google Drive или дашборд для мониторинга числа ответов на форму.

Парсинг сайтов и REST API

Еще на GAS можно делать http-запросы и обрабатывать их результаты. С помощью класса UrlFetchApp можно извлекать данные с веб-страниц и парсить XML/JSON ответы REST API сервисов.

К примеру, у нас на iPhones.ru есть программа, которая на входе получает список ссылок на AppStore из таблицы, а на выходе выдает блоки кода с информацией о приложениях и ссылками на иконки (картинки сохраняются на Google Диск под специальными названиями) и потом оттуда загружаются в админку WordPress.

Для чего я сама использую Google Apps Script

scanmail
Когда я работала в ][, то у нас была старая тормознутая система для сведения бумажного номера, написанная на Delphi в лохматом году. Чтобы было удобнее, я сделала аналог в Google Документе. На GAS написаны функции для окраски строк в зависимости от этапа, на котором находится материал, нумерации страниц, подсчета незаполненных полос и генерации отчета о количестве материалов, которые находятся на каждом этапе (почти два десятка функций). Пожалуй, это самый масштабный пример личного использования GAS.

Если мне нужно спарсить несколько веб-страниц (не 2000, а 10–100), то я создаю Google Таблицу и открываю редактор скриптов. Это гораздо более быстрый и комфортный способ (для небольших объемов), чем использование curl (прежде всего из-за наглядности). Очень удобно, когда результаты парсинга можно сразу посмотреть в таблице и обернуть их в html-код. Чуть выше я приводила пример, как это может пригодиться автором статей про iOS-приложения.

И еще я регулярно использую GAS для создания групповых рассылок. Написать пару строк кода легче (это занимает минуту), чем отправить 30–40 писем (не говоря уже о больше объеме), настройке автоответов и отложенный отправки писем по условию.

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

Но гораздо больше пользы с помощью Goole Apps Script я принесла не самой себе, а заказчикам скриптов (владельцам очень малого бизнеса), которым они были нужны, чаще всего, для обработки данных в таблицах или автоматизации продаж/оповещений клиентов.

Материалы про Google Apps Script

Все что нужно для начала экспериментов есть в официальной документации и справочнике. А описание готовых рецептов на русском языке можно найти в статья на iPhones.ru:

FavoriteLoadingВ закладки

©  iphones.ru