Google Apps Script — С чего начать изучение?

starstarstarstarstar 4.9
Всего оценок: 181
Последнее обновление:

А вы слыхали про гугл скрипты (Apps Script)? Нет?

Ну, как же так получилось? Ай-яй-яй!

Такая полезная вещь, а о ней в курсе лишь узкий круг специалистов. А зря!

Такая ситуация сложилась в русскоязычном сообществе, в англоязычном же интернет пространстве он довольно популярен (что видно из графиков ниже).

Почему зря?

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

Та что там бизнес, каждый оценит по достоинству возможности этого сервиса, ведь способов применения просто бездна!

Стоит немного вникнуть в кухню сервисов гугл, как, прям таки, перехватывает дыхание от открывающихся перспектив!

Но не будем забегать вперед.

Для начала необходимо разобраться что это такое и что с этим делать.

Google Apps script — что это?

G-Apps-Script | Фото - Сервисы Google

Давным давно (с 2009 года) великий гугл выпустил полезную фичу — Google Apps script.

Этот сервис дает возможность автоматизировать работу сервисов гугл. Самый близкий аналог — это офисный пакет Microsoft Office со своими макросами на VBA (Visual Basic for Applications) и его аналоги Libre Office, SoftMaker Office и т.п.

Конечно, не совсем корректно сравнивать сравнвать GAS и VBA.

Вот что об этом говорит один из ведущих специалистов по сервисам google в русскоязычном интернете, Александр Иванов.

Единственное, что их объединяет, это идея расширения возможностей табличного процессора за счет дополнительного программного кода. …

Александр Иванов

Консультант по Google Apps Script

Ознакомится с более подробным сравнением, которое Александр любезно составил специально для нас с вами, можно по этой ссылке.

Конечно, у многих, кто пытался с ходу освоить использование макросов могли остаться не слишком приятные воспоминания, однако не стоит сразу морщиться!

Gooogle Apps script — куда более дружелюбно настроенный к пользователю язык, чем может показаться на первый взгляд.

Фактически это язык сценариев на базе JavaScript (стандарта ECMAScript 5), придуманный специально для того чтобы существенно упростить разработку приложений на основе Google Apps.

Для тех, кто в танке, напоминаю, что Google Apps (кстати, пакет недавно переименовали в G Suit) — это интернет-сервисы разработанные транснациональной корпорацией и с которыми в той или иной степени знаком каждый.

Сервисы гугл

(которые мы будем рассматирвать, писать для них сценарии на gas):

и многие другие, список приложений постоянно растет (тут можно посмотреть весь список продуктов google).

Так вот, основные преимущества работы с гугл скриптами — это выполнение кода не на клиенте (т.е. непосредственно не на вашем рабочем компьютере), а в облаке Google.

Что дарит возможность создания автономных сценариев, для работы которых не требуется вмешательство пользователя (очень крутая фишка!).

Кроме того, для начала работы не требуется ничего устанавливать, Google уже обо всем позаботился.

Есть готовый редактор со всем необходимым функционалом (фото ниже).

К плюсам также можно причислить

  • Достаточно низкий порог входа, т.е. легко обучаемый язык.
  • Возможность взаимодействия и с другими службами Google, такими как AdSense, Google Analytics, AdWords и тп.
  • Возможность создавать полноценные веб-приложения с графическим интерфейсом на HTML.
  • Также возможность делать http-запросы и обрабатывать их результаты (парсинг). Тоесть с помощью класса UrlFetchApp в gas можно извлекать данные с веб-страниц и парсить XML/JSON ответы REST API сервисов.
  • Достаточный функционал для создания простых инструментов, необходимых в работе предприятия, вплоть до полноценной CRM системы.
  • Развитое комьюнити, в смысле, множество готовых решений и людей охочих подсказать и, конечно, документация. Правда все эти прелести в своем большинстве ориентированы на англоязычную публику.
  • и многое другое.

Первый шаг — создание скрипта

Не будем ходить вокруг, да около… Напишем свой первый скрипт прямо сейчас.

Создание скрипта через панель инструментов Script Script

Для начала зайдите в свой аккаунт Google (напомним, что для доступа ко всем сервисам требуется только один аккаунт, который заводится вместе с гугловской почтой), а затем переходим по следующей ссылке script.google.com и попадаем на вот такую страницу (панель инструментов Script Script):

G-Apps-Script | Фото - Панель инструментов Google Script

В левом боковом меню, кликните на кнопку + Создать скрипт.

G-Apps-Script | Фото - Создать сценарий

Перед вами окно редактора гугл скриптов:

G-Apps-Script | Фото - Окно редактора Google Сценариев

К слову, это не единственный способ его запуска.

Можно пойти и другим путем.

Создание скрипта через Google Диск

Сперва, заходим на Google Диск.

G-Apps-Script | Фото - Google Диск

Клацаем на кнопочку Создать, выпадет список с вариантами, тут выбираем Еще и жмем на Подключить другие приложения.

G-Apps-Script | Фото - Google Диск, подключить другие приложения

В окошке подключений, в поиске, вводим Google Apps script клацаем Подключить и… вуаля!

G-Apps-Script | Фото - Google Диск, подключить приложение Google Apps script

В окне Приложение Google Apps Script добавлено на Google Диск., устанавливаем птицу напротив Выбрать Google Apps Script приложеним по умочанию для файлов, которые открываются с его помощью. и жмем на ок

G-Apps-Script | Фото - Google Диск, подключить приложение Google Apps script

Теперь в списке ваших возможностей появился новый сервис и мы можем приступать непосредственно к коду.

G-Apps-Script | Фото - Google Диск, создание файла для сценария

Создание скрипта через файл-контейнер

Кроме того существует еще один способ создать файл для сценария.

Это создание файла-сценария внутри файла-контейнера (например внутри таблицы, документа, слайда или формы, условно внутри).

Но этот способ мы разберем в следующих статьях.

Первый скрипт

Создаем свой первый скрипт.

Можно, конечно, сходить вот по этой ссылочке тыц и внимательно почитать что пишут знающие люди, или…

Не ходить, а просто отдаться в руки автора (т.е. в мои)) ) и читать дальше…

Тем, кто никогда не пробовал свои силы в программировании, наверняка, “лаконичное” окно редактора покажется совершенно загадочным и возможно некоторым даже захочется сбежать с криками: “Меня обманули, говорили, что это просто!!!

Не спешите смазывать лыжи! Это действительно просто, если, конечно, знать что делать.

G-Apps-Script | Фото - Не спешите смазывать лыжи!

Так уж повелось, еще на заре цифровых технологий, первым тестовым сообщением, которое выводит свеженаписанная программа это: “Привет мир!”.

Предлагаю чуть, отступить от канонов и вывести куда-нибудь сразу перевод знаменитого приветствия…ну, скажем, на суахили!

Для начала меняем название функции с myFunction на firstTest.

Далее пишем вот такую аБрА-КадабРу:

function firstTest () {
  return Logger.log( LanguageApp.translate("Hello World!", "en", "sw") );
}

Давайте распишем тот же пример более подробно и разберем каждую строку

function firstTest () {
    var text = "Hello World!",
        text_language = "en",
        language_of_translation = "sw";
	
    text = LanguageApp.translate(
        text,
        text_language,
        language_of_translation
    );
	
    Logger.log( text );

    return;
}

Строка 1. Директива function создает новую функцию, далее указываем ее название firstTest.

Затем в круглых скобках () указываем параметры которые хотим передать в функцию (в нашем случае мы ничего не указываем, так как ничего не передаем).

А в фигурных скобках {} указывается код который выполняется когда эта функция будт вызвана.

function firstTest () {
    // Тут код функции
}

Если поставить два слеша //, то код после них и до конца строки выполнятся не будет.

Это называется комментарий.

К слову, комментарий еще можно указать так /* */, любой текст заключенный внутри будет считатся комментарием, независимо от начала и/или конца строк(и).

Строки 2-4. Объявляем переменные с помощью директивы var.

  • Переменная text со значением “Hello World!” — это текст, который требуется перевести,
  • text_language со значением “en” — код языка на котором написан текст, если оставить его пустым (вот так “”), язык будет определяться автоматически,
  • И language_of_translation со значением “sw” — код языка на который будет переведен текст.

(коды языков можно подсмотреть здесь)

var text = "Hello World!",
    text_language = "en",
    language_of_translation = "sw";

Строки 6-10. Обращаемся к объекту LanguageApp, а точнее к методу этого объекта translate, который принимает три параметра (их мы уже описали выше в строках 2-4).

Если некоторые термины вам непонятны и/или у вас нет базовых знаний JavaScript или другого языка, не расстраивайтесь!

В конце статьи я дам ссылку на простой учебник по JS.

Результат

Результатом работы этого метода будет — переведенный текст, который, в нашем случае, записывается в переменную text (то есть перезаписываем старое значение на новое).

text = LanguageApp.translate(
    text,
    text_language,
    language_of_translation
);

Строка 12. Logger.log( text ) — это вывод нашего текста в журнал, где потом мы и будем его смотреть.

Logger.log( text );

К слову, данный способ ( Logger.log(); ) в будущем не раз пригодится для отладки ваших сценариев, т.е. поиска и устранения ошибок, закравшихся в ваш сценарий.

Строка 14. Необязательная директива return — возвращает данные, указанные поле нее (мы ничего не указали, а это значит что по умолчанию возвратится false, с таким же успехом данную директиву можно было не указывать).

    return;

Продолжим, наша программа написана, теперь сохраним ее нажав на эту кнопку (иконка дискеты)

G-Apps-Script | Фото - Сохранение программы

К вам тут же выскочит окошко.

В нем вводим название проекта в поле Укажите новое название проекта, пусть будет Привет мир!. Затем жмем на кнопку ok

G-Apps-Script | Фото - Окно "Изменение названия проекта

Теперь запустим ее, сначала выбрав нужную функцию а затем нажав на вот тут (иконка треугольник)

G-Apps-Script | Фото - Запуск программы

И наконец, идем во вкладку Вид > Журналы или просто нажимаем Ctrl+Enter (горячии клавиши полезная штука).

И вот результат наших стараний…

G-Apps-Script | Фото - Результат работы скрипта

Синим подчеркнута информация, сообщающая когда была сделана запись,

а красным наше содержимое переменной text.

Да, да — Salamu, Dunia! И есть перевод знаменитого Hello World на суахили.

Задача выполнена!

Овации! Чувствуете гордость? Совершенно заслуженно.

G-Apps-Script | Фото - Овации!

Мы с вами сделали первый шаг к освоению замечательного инструмента.

Согласитесь, без ложной скромности, что это было не так уж и сложно.

Остались вопросы?

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

Да и поэкспериментируйте с кодом, а потом покажите нам его в комментариях.

Итоги

А теперь, коротко, подведем итоги:

  • Установка сервиса GAS простая процедура, которая займет меньше минуты.
  • Запустить редактор скриптов можно по ссылке script.google.com
  • LanguageApp.translate(text, sourceLanguage, targetLanguage); — автоматически переводит текст с исходного языка на целевой язык, он принимает 3 параметра: исходный текст, язык текста, язык перевода.
  • Журнал очень полезен для отладки сценариев.
  • Salamu, Dunia!Hello World на суахили.
  • GAS — не так все сложно, как кажется.

Надеюсь мне удалось донести мысль, что Google Apps Script удивительно полезный инструмент, на изучение которого стоит потратить время.

А дальше больше!

В следующей статье рассмотрим подробнее возможности и функционал редактора.

То бишь, все эти кнопочки, вкладочки и т.п.

Сделав первый шаг к цели, не стоит останавливаться. Как гласит древняя мудрость:

Дорога…

…. возникает….

… под шагами идущего…

Полезные ссылки и источники

Author: Максим Стоянов

Разработчик Google Apps Script.