Build web apps and automate tasks with Google Apps Script
Apps Script is a rapid application development platform that makes it fast and easy to create business applications that integrate with Google Workspace.
Build with Google
Code on the Web
Share your App
Get Started
Tutorials and guides to take you from writing your first script to building your application.
Example Scripts
From productivity tools to enterprise automation, see what you can build with Google Apps Script.
Developer Reference
Complete documentation with everything you need to know as you build with Google Apps Script.
Google Apps script: получение данных из Flurry
Вариантов использования Google Apps Scripts множество. Мой друг работал с иностранным заказчиком и тот просил каждый день отчет ему на почту с текстом кто и что делал. В результате он попросил сотрудников трэкать все в гугл таблицу не позднее 21:00, потом стартовал скрипт и собирал данные и слал по нужному адресу.
В статье я приведу простой и, как мне кажется, полезный пример использования Google Apps Scripts.
Что такое Google Apps Scripts?
Если коротко, то это сервис который позволяет на JavaScript писать скрипты, работающие в облаке Google. Сервис предоставляет широкий API, к примеру в данной статье мы создадим гугл таблицу на основе метрик приложения из Flurry.
В чем состоит решаемая проблема и что хотелось бы получить?
Я работаю в компании которая занимается разработкой игр под мобильные платформы для статистики мы используем данные своего сервера + данные от Flurry. Чтобы как-то все это совместить я решил использовать сервисы предоставляемые Google и в результате получить один отчет с данными и графиками.
Что вы получите в конце этой статьи?
Скрипт который по расписанию запрашивает метрики приложения от Flurry сервиса, парсит их и делает простую гугл таблицу(аналог Microsoft excel) c этими данными и простым графиком.
Основная цель
Я не ставлю цели создания эталонного отчета статистики. Я был удивлен доступностью такого функционала и решил поделиться небольшим опытом виде тестового скрипта.
Начнем с простых шагов
Что понадобится?
- gmail аккаунт
- Flurry аккаунт
Настройка gmail
- Зайти на вкладку “Google drive”
- Нажать кнопку “Create”
- Нажать кнопку “Connect more apps”
- Откроется окошко и в нем в строке поиска ввести “google script”

- На приложении “Google Apps Script” нажать “+ connect”
- На диалоговых окнах нажать Ok
- На вкладке “Google drive” нажать кнопку “Create” и создать “Script”

- Выберем “Blank project”

- Откроется окно с проектом. В верхнем правом углу два раза кликните на имени проекта и переименуйте его в “Flurry statistic”, в левой панели правой кнопкой кликните на имени скрипта и переименуйте его в ”createStatisticReport”
- В корне своего “Google Drive“ создайте папку “Statistic”
- Теперь у нас все готово чтобы написать первый Google apps script
Настройка Flurry
Я подразумеваю, что у вас уже есть сконфигурированный аккаунт Flurry с данными.
Для программного доступа к данным от Flurry выполните инструкции по ссылке:
support.flurry.com/index.php?title=API/GettingStarted
В итоге вы получите ключ, который нужно сохранить для использования в скрипте.
Еще понадобится “ProjectApiKey” от Flurry, который вы уже используете в мобильном приложении.
Пишем скрипт
Точнее уже все написано, тут я просто опишу, как это запустить.
Идем по ссылке и забираем тексты скриптов github.com/chapayGhub/flurrymetricstospreadsheet
В проекте, который мы создали до этого, нужно создать такие же.
Теперь, после того как все сделали, откройте Settings.gs и в нем
Введите свои ключи от Flurry
Тут введите свое имя электронной почты, лучше от гугл(другие я не проверял)
Скрипт настроен на получение метрик приложения из Flurry + на ваш почтовый ящик придет письмо, что вы добавлены как редактор.
Запускаем и дебажим
В левой панели выберем скрипт «СreateStatisticReport»
В верхней панели около кнопки с жуком в выпадающем списке выбираем «makeStatisticReport» 
Теперь все просто верхняя панель имеет две «супер» кнопки понятные любому программисту.
Запуск по расписанию
Выполните действия на картинках 


Нюансы
Сделать так чтобы скрипт работал каждый раз с одним документом
Сразу запустите на выполнение не на дебаг. Должен создаться документ в папке «Statistic» и к вам на почту придут письма, в одном из которых будет идентификатор созданного документа
Присвойте его переменной расположенной в скрипте Settings.gs.
Теперь скрипт будет обнолять именно этот документ, а не создавать каждый раз новый. Если данный параметр не введен, то при старте скрипт пытается найти документ по несуществующему идентификатору, естественно не находит его, бросает исключение(в дебаге может быть остановка в этом месте выполнения), но это исключение отлавливается и создается новый документ.
Логирование
Используйте следующий метод
Чтобы просмотреть вывод выберите следующий пункт из меню 
Нужна помощь
Браузерный редактор вещь удобная, но вот если скрипт будет более объемным то в нем не совсем удобно работать.
По этой ссылке ниже описано как можно выгружать и загружать проект.
developers.google.com/apps-script/import-export
У меня появилась идея написать скрипт который на входе получал идентификатор проекта выгружал его на локальный диск в отдельные файлы. Эти файлы затем можно было бы по человечески отрефакторить и в конце опять через этот скрипт загрузить обратно.
Apps Script is a cloud-based JavaScript platform that lets you integrate with and automate tasks across Google products.
Develop high quality solutions with ease
Automations
Write code that programmatically performs tasks across Google products. Automations are set in motion by custom menus, buttons, user actions, or a time-based schedule.
Custom functions
Write Google Sheets functions in Apps Script and call them from your spreadsheet just like built-in functions.
Add-ons
Build an app that automates tasks or connects to third-party services from within Google Workspace. Share your solution with others on the Google Workspace Marketplace.
Chat app
Provide a conversational interface that lets Google Chat users interact with services as if the service were a person.
Release notes
Support
REST API
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Чем полезен 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?

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

В комментариях иногда пишут: «Я не хочу пользоваться Google Apps Script, так как не хочу заморачиваться с программированием». Но чтобы создавать автоматизации с помощью этого инструмента, практически не требуется умственного напряжения.
Нужно только понимать на абстрактном уровне что означают понятия: условный оператор, цикл, массив, функция, метод, объект, свойство объекта и знать английский язык/уметь пользоваться переводчиком, чтобы читать документацию, так как в ней есть множество готовых примеров кода.
Их можно копировать, комбинировать между собой, редактировать и получать в итоге успешно работающие автоматизации. И это очень быстрый процесс. Попробуйте и у вас все получится! Открываете любое из вышеперечисленных приложений, идете в пункт меню Инструменты -> Редактор скриптов и вперед!
И полезно владельцам iPhone
«Офтоп, опять офтоп» — думает кто-то из читателей. Но тема Google Apps Script очень актуальна для пользователей iOS-устройств. Во-первых, у Google есть множество полезных приложений для iPhone/iPad, которые основаны на сервисах, поддерживающих GAS:
А во-вторых, можно настроить запуск автоматизаций для сервисов Google после выполнения определенных действий на iPhone: создания фотографии или контакта, изменения местоположения, включения страницы в список для чтения. Это возможно благодаря рецептам IFTTT.
IFTTT

C помощью mush-up сервиса IFTTT (IF This Than That) можно настраивать выполнение какого-либо действия (отправка письма, размещения поста в Facebook, создание записи в таблице Google) или в случае проишествия какого-либо события (изменения погоды, достижения какой-либо цели в Fitbit, добавление новости в Pocket). Перед Новым годом на iPhones.ru о нем вышла статья 40 рецептов IFTTT для гаджетов.
IFTTT помогает подружить сервисы Google (внося записи об определенных действиях на диск) с iPhone, Android, термостатом Nest, лампочкой Lifx, кондиционером, «умной» копилкой, фитнесс-браслетом и десятками других гаджетов. А также с социальными сетями, платформами для ведения блогов, rss-каналами, облачным хранилищем и еще кучей других сервисов.
Для людей с фантазией это открывает огромный простор для творчества и улучшения своей жизни.
Триггеры и расписание

Если вы не читали предыдущие статьи про Google Apps Script, то у вас может возникнуть вопрос: каким образом новый файл на диске/строка в электронной таблице, которую добавляет IFTTT, может послужить толчком к выполнению автоматизации?
Если в редакторе скриптов открыть пункт меню Ресуры -> Триггеры текущего проекта, то можно настроить выполнение программ по времени:
- В конкретный день и час;
- Каждую неделю/день/месяц;
- Каждые n минут/часов/дней.
Или при совершении следующих событий:
- Открытие документа;
- Изменение документа (которое может производится с помощью IFTTT);
- Установка дополнения;
- Отправка запроса от веб-приложения (об этом ниже).

Скрипты можно запускать не только непосредственно из редактора, но и создавать для их запуска меню, который будут появляться при открытии документа в дополнение к основному интерфейсу. Вот небольшой пример кода, который показывает как это сделать:
[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

Когда я работала в ][, то у нас была старая тормознутая система для сведения бумажного номера, написанная на Delphi в лохматом году. Чтобы было удобнее, я сделала аналог в Google Документе. На GAS написаны функции для окраски строк в зависимости от этапа, на котором находится материал, нумерации страниц, подсчета незаполненных полос и генерации отчета о количестве материалов, которые находятся на каждом этапе (почти два десятка функций). Пожалуй, это самый масштабный пример личного использования GAS.
Если мне нужно спарсить несколько веб-страниц (не 2000, а 10-100), то я создаю Google Таблицу и открываю редактор скриптов. Это гораздо более быстрый и комфортный способ (для небольших объемов), чем использование curl (прежде всего из-за наглядности). Очень удобно, когда результаты парсинга можно сразу посмотреть в таблице и обернуть их в html-код. Чуть выше я приводила пример, как это может пригодиться автором статей про iOS-приложения.
И еще я регулярно использую GAS для создания групповых рассылок. Написать пару строк кода легче (это занимает минуту), чем отправить 30-40 писем (не говоря уже о больше объеме), настройке автоответов и отложенный отправки писем по условию.
Плюс еще целый ряд мелких одноразовых задач (в основном связанных с выгрузкой данных из почты/диска и работой с таблицами) были успешно решены с помощью GAS. Этот инструмент как швейцарский нож, который не надо носить с собой, так как он всегда на месте.
Но гораздо больше пользы с помощью Goole Apps Script я принесла не самой себе, а заказчикам скриптов (владельцам очень малого бизнеса), которым они были нужны, чаще всего, для обработки данных в таблицах или автоматизации продаж/оповещений клиентов.
Материалы про Google Apps Script
Все что нужно для начала экспериментов есть в официальной документации и справочнике. А описание готовых рецептов на русском языке можно найти в статья на iPhones.ru:
В закладки