Чем полезен Google Apps Script. Настрой рассылку, сверстай журнал и не только

Ирина Чернова avatar | 10
FavoriteLoading В закладки
Чем полезен 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
Скрипты можно запускать не только непосредственно из редактора, но и создавать для их запуска меню, который будут появляться при открытии документа в дополнение к основному интерфейсу. Вот небольшой пример кода, который показывает как это сделать:
[jscript]
// Устанавливаем триггер "при открытии документа"
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(‘Вы нажали на пункт подменю’);
}
[/jscript]

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

Еще с помощью 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:

1 Звезд2 Звезды3 Звезды4 Звезды5 Звезд (18 голосов, общий рейтинг: 4.28 из 5)
undefined
iPhones.ru
Google Apps Script — диалект JavaScript для создания автоматизирующих скриптов и расширений для сервисов Google. Появился он в 2009 году и с тех пор стремительно развивается и набирает популярность. Ведь этот язык — уникальное средство автоматизации, которое доступно для использования и может быть полезно практически каждому человеку. Для меня Google Apps Script — быстрые деньги,...
Прокомментировать

🙈 Комментарии 10

  1. Андрей Михайлов avatar
    0

    Полезно, спасибо

    Ирина Чернова avatar
    0

    @Андрей Михайлов, :-)

  2. migmit avatar
    migmit28 мая 2016
    1

    Так и не понял, для чего нужны Google Docs.

    burivuh avatar
    burivuh29 мая 2016
    0

    @migmit, я тоже не особо понимал, пока где-то полгода не пришлось поработать в команде, где их используют постоянно.

  3. iBolobay avatar
    iBolobay28 мая 2016
    0

    Вот бы такой скрипт для жены написать

  4. yurembo avatar
    yurembo28 мая 2016
    0

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

  5. kulachok5 avatar
    kulachok528 мая 2016
    0

    Ирина Вам вопрос как знатоку интернет ресурсов гугл:
    Есть таблица с общим доступом для примерно 30 человек.
    Каждый из них в этой таблице в режиме онлайн меняет данные (в основном создает новые строки и меняет в них те или иные столбцы, проставляя статусы). Проблемма в том, что строк все больше и больше, а каждый из 30-ти желает видеть только свои.
    НО! Как только один из них выставляет какой-либо фильтр, то этот фильтр становится единственным видом для всех 30-ти.
    Как это преодолеть? Как сделать так, чтобы у каждого мог быть свой аид таблицы, согласно своего фильтра?

    Ирина Чернова avatar
    0

    @kulachok5, надо написать скрипт, который будет на отдельный лист помещать ячейки, соответствующие определенному условию и сделать меню для его запуска. Как делать скрипты для Google Таблиц написано здесь https://www.iphones.ru/iNotes/506236

  6. AlexFFF avatar
    AlexFFF29 мая 2016
    0

    Ирина, спасибо за очередную полезную статью!

    Ирина Чернова avatar
    0

    @AlexFFF, :-)

Вы должны авторизоваться или зарегистрироваться для комментирования.

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.

Как установить аватар в комментариях?

Ответ вот здесь