Гугл таблицы самые полезные скрипты для бизнеса. Google Apps script: получение данных из Flurry

07.03.2019

Как известно, любой снимок, сделанный при помощи камеры в iPhone сопровождается звуком, имитирующим срабатывание затвора фотоаппарата. Этот звук щелчка – всего лишь бутафория, и вам может показаться, что должен существовать простой способ отключить его. Спешу вас разочаровать, но такой настройки в iPhone не существует.

Если вы постоянно используете смартфон в качестве фотоаппарата, то наличие такого звукового сопровождения не всегда удобно. В некоторых случаях «щелкание затвором» при каждом снимке будет просто неуместным.

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

В устройствах Apple с iOS для решения этой проблемы можно применить некоторые хитрости. Ниже приведены несколько способов как выключить/включить звук затвора камеры на Айфоне.

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

Переведите телефон в беззвучный режим

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

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

Уменьшите уровень звука

Что вы будете делать, если кнопка перехода в беззвучный режим не работает? В этом случае наиболее очевидным решением видится уменьшение уровня звука, но, если вы попробуете сделать это в приложении «Камера», то включите режим ускоренной съемки.

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



Если вы уже запустили приложение «Камера», то уменьшить уровень звука можно следующим образом. Проведите по экрану снизу вверх для того, чтобы открыть Панель управления (Control Center), затем проведите влево для открытия регулятора уровня громкости. С его помощью вы можете отключить звук камеры на Айфоне.

Отключить звук эффекта затвора с помощью приложения музыки

Был обнаружен еще один метод как отключить звук затвора камеры на iPhone, который работает с iOS 7, iOS 8, iOS 9 и более новыми, не завися от переключателя «Mute». Это обходное решение, которое включает в себя воспроизведение песни, вот как это работает:

1. Откройте приложение «Музыка» и включите песню, неважно, какую.

2. Теперь, используйте кнопки громкости на боковой панели iPhone и полностью опустите громкость песни до нуля.

3. После этого, используйте приложение «Камера» в обычном режиме – поле этого, при съемке, камера не будет издавать звук.

Также есть и другие способы убрать звук камеры на iPhone и iPad. Они немного труднее, но все равно стоит упомянуть о них.

Используйте функцию Using Assistive Touch (вспомогательное касание)

Включите функцию «Assistive Touch» и настройте управление уровнем звука. Для этого перейдите в «Настройки приложений» → «Основные» → «Доступ» → «Функция Assistive Touch» («Settings App» → «General» → «Accessibility» → «Assistive Touch»).

Для удобства добавьте кнопку активации выключателя звука (Mute control) в меню верхнего уровня (Customise Top Level). Теперь вы сможете отключить звук затвора перед включением камеры или во время ее использования, просто нажав на картинку на Айфоне или Айпаде (iOS).

Также существуют альтернативные способы убрать звук камеры iPhone:

● Первый способ является довольно смешным, если бы не вызывал слезы. Суть его заключается в том, чтобы делать фото во время записи видео. Вы не услышите звук затвора, однако получите снимок в меньшем качестве (в том же разрешении, что и записанное видео) и ненужный видео файл, который в будущем придется удалить.

● Второй способ не уберет звук при съемке, однако, его не услышат окружающие. Все, что нам понадобится, это подключить наушники (не имеет значения стандартные проводные или bluetooth) и делать снимки.

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

● Третий вариант является самым безобидным и эффективным. Ведь он уберет не только звук щелчка при съемке камеры на Айфоне, но и выключит весь звук в принципе. Просто отключите звук у аудиоплеера.

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

Как убрать звук камеры на Айфоне и Айпаде с джейлбрейком?

Убрать звук камеры на джейлбрейкнутом Айфоне / Айпаде гораздо проще, так как для этого существует огромное количество приложений, которые помогают вам сделать это. Отличным примером является приложение «StealThsnap», которое выключает звук затвора камеры на iPhone. Вы можете скачать его на ваш iPhone, iPad или iPod.

Кому нужно приложение StealThsnap?

Приложение Stealthsnap Cydia позволяет отключить звук затвора камеры на Айфоне. Его разработчик Lex является талантливым новичком в сфере разработок программ-взломщиков. Приложение очень удобно использовать для всех моделей смартфонов и планшетов.

На сколько безопасно приложение?

Приложение полностью безопасно, так как оно просто изменяет имя файла photoShutter.caf. Этот файл в памяти iOS отвечает за звук затвора камеры. После переименования файла iOS перестает его видеть и звуковое сопровождение срабатывания камеры исчезает.

При удалении приложения файл возвращается в исходное состояние и звук затвора снова появляется.

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

Если вы живете в стране, в которой звуковое сопровождение фотосъемки должно быть всегда включено, то это приложение вам просто необходимо. Скачать Stealthsnapможно .

Чем еще выделяется приложение, так это его потрясающей совместимостью. Оно поддерживает все версии операционных систем от iOS 1 до iOS 10.2. В дальнейшем оно также будет совместимо с iOS 11 без установки каких-либо дополнительных модификаций.

Одним из следствий небрежного отношения к устройству является выход из строя переключателя режимов iPhone 6 и iPhone 6 Plus. Физическое повреждение ведет к необходимости замены его и прилегающих к нему компонентов. Несмотря на то, что iPhone 6 и iPhone 6 Plus официально являются неразборными, заменить переключатель режимов можно самостоятельно в домашних условиях. Для этого необходимо приобрести специальный набор инструментов и воспользоваться предложенной инструкцией.

Так как же заменить переключатель режимов на iPhone 6 и iPhone 6 Plus?

1. Открутить Pentalobe-винты возле разъема Lightining:

Данная процедура может быть выполнена с помощью специализированного набора Pentalobe-отверток, которые можно заказать через интернет. Стоит обратить внимание, что все манипуляции по разборке iPhone и замене определенных его комплектующих должны выполняться только при выключенном состоянии телефона.

2. Поднять переднюю панель устройства с помощью присоски и пластикового инструмента с острым краем:

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

3. Открутить пять винтов, которыми закреплена передняя панель устройства:

4. Снять защитную металлическую пластину:

5. Отсоединить все шлейфы передней панели устройства и снять ее:

6. Открутить два винта, которыми закреплен кабель аккумулятора:

Данные винты, изготовленные компанией Phillips, имеют стандартную конструкцию, поэтому могут быть удалены несколькими обычными отвертками из качественного набора инструментов.

7. Снять защитную металлическую пластину:

Открученная пластина может быть снята при помощи пинцета.

8. Отсоединить шлейф аккумулятора устройства:

Данная процедура должна быть выполнена максимально аккуратно с помощью пластикового инструмента с острым краем.

9. Отсоединить шлейф порта Lightning устройства:

Данная процедура должна быть выполнена максимально аккуратно с помощью пластикового инструмента с острым краем.

10. Открутить два винта, которыми закреплен кронштейн верхней части шлейфа материнской платы устройства:

Данные винты, изготовленные компанией Phillips, имеют стандартную конструкцию, поэтому могут быть удалены несколькими обычными отвертками из качественного набора инструментов.

11. Снять кронштейн кнопок питания и регулировки громкости:

12. Отсоединить шлейфы кнопок питания и регулировки громкости:

Данная процедура должна быть выполнена максимально аккуратно с помощью пластикового инструмента с острым краем.

13. Открутить четыре винта, которыми закреплен кронштейн контактной скобки:

Данные винты, изготовленные компанией Phillips, имеют стандартную конструкцию, поэтому могут быть удалены несколькими обычными отвертками из качественного набора инструментов.

14. Снять кронштейн контактной скобки:

Открученный кронштейн может быть снят при помощи пинцета.

15. Открутить два винта, которыми закреплена заземляющая скобка:

Данные винты, изготовленные компанией Phillips, имеют стандартную конструкцию, поэтому могут быть удалены несколькими обычными отвертками из качественного набора инструментов.

16. Снять заземляющую скобку:

Открученная скобка может быть снята при помощи пинцета.

17. Открутить два винта, которыми закреплен угловой кронштейн:

Данные винты, изготовленные компанией Phillips, имеют стандартную конструкцию, поэтому могут быть удалены несколькими обычными отвертками из качественного набора инструментов.

18. Снять угловой кронштейн:

Открученный кронштейн может быть снят при помощи пинцета.

19. Открутить один винт, которым закреплен кабель антенны:

Данные винты, изготовленные компанией Phillips, имеют стандартную конструкцию, поэтому могут быть удалены несколькими обычными отвертками из качественного набора инструментов.

20. Отсоединить антенный кабель и шлейф камеры:

Данная процедура должна быть выполнена максимально аккуратно с помощью пластикового инструмента с острым краем.

21. Открутить три винта, которыми закреплена материнская плата:

Данные винты, изготовленные компанией Phillips, имеют стандартную конструкцию, поэтому могут быть удалены несколькими обычными отвертками из качественного набора инструментов.

22. Снять материнскую плату:

23. Отклеить закрепляющие аккумулятор наклейки:

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

24. Снять аккумулятор:

Данная процедура должна быть выполнена максимально аккуратно с помощью пластикового инструмента с острым краем.

25. Удалить закрывающую крепление основой камеры пленку:

Данная операция может быть выполнена при помощи пинцета.

26. Открутить два винта, которыми закреплена основная камера:

Данные винты, изготовленные компанией Phillips, имеют стандартную конструкцию, поэтому могут быть удалены несколькими обычными отвертками из качественного набора инструментов.

27. Снять основную камеру устройства:

Данная операция может быть выполнена при помощи пинцета.

28. Открутить один винт, которым закреплен кронштейн вспышки:

Данные винты, изготовленные компанией Phillips, имеют стандартную конструкцию, поэтому могут быть удалены несколькими обычными отвертками из качественного набора инструментов.

29. Снять кронштейн вспышки устройства:

Данная операция может быть выполнена при помощи пинцета.

30. Открутить два винта, которыми закреплен кронштейн кнопки питания:

Данные винты, изготовленные компанией Phillips, имеют стандартную конструкцию, поэтому могут быть удалены несколькими обычными отвертками из качественного набора инструментов.

31. Снять шлейф кнопки питания, микрофона и вспышки:

Данная процедура должна быть выполнена максимально аккуратно с помощью пластикового инструмента с острым краем.

32. Снять кнопку питания:

Данная операция может быть выполнена при помощи пинцета.

33. Открутить три винта, которыми закреплен кронштейн кнопок громкости:

Данные винты, изготовленные компанией Phillips, имеют стандартную конструкцию, поэтому могут быть удалены несколькими обычными отвертками из качественного набора инструментов.

34. Снять переключатель режимов и смежные компоненты:

Данная операция может быть выполнена при помощи пинцета.

35. Заменить переключатель режимов и смежные компоненты, собрать устройство:

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

Таким образом, заменить переключатель режимов и смежные компоненты на iPhone 6 и iPhone 6 Plus можно всего за несколько минут. Выполнять указанные действия нужно максимально аккуратно, чтобы не повредить компоненты устройства, что вызовет необходимость дополнительного дорогостоящего ремонта. Дабы избежать всех возможных трудностей, можно обратиться за помощью к специалистам компании «ЭтоСервис».

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

Основы использования

Начать писать Google Apps скрипты очень просто. Первым делом надо открыть редактор скриптов в любом приложении, взаимодействие с которым будем автоматизировать. В Google Docs он находится в меню «Инструменты -> Редактор скриптов». Далее надо выбрать проект, внутри которого будет располагаться скрипт (см. рис. 1). В открывшемся окне пишем код:

Function FirstExampleFunc() { Browser.msgBox("Это таки JS! "); }

Декларированную функцию можно запускать из «Инструменты -> Управление скриптами» или сделать для нее отдельную кнопку. Для этого надо прописать еще одну функцию:

Function menu() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var entries = [ {name: "Моя единственная функция", functionName: "FirstExampleFunc"}, ss.addMenu("Мои функции", entries); }

Теперь в нашем меню есть пункт под названием ExampleFunc, при клике на который открывается однострочное подменю «Моя единственная функция».

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



WARNING

Перед запуском скрипта не забудь сделать резервную копию важной информации. Действия, выполненные GS, нельзя отменить нажатием .

Работа с Google Docs

Когда встает задача автоматизации работы с офисными документами, первым делом на ум приходит VBA, одно упоминание которого оказывает на многих тотальное антиэкстатическое воздействие, вызывая болезненные воспоминания из школьного и университетского прошлого. Google Script однозначно удобнее и доступнее для понимания. Особенно для веб-разработчиков, ведь это же родной, привычный и любимый JS! Разберем пару примеров скриптов для Google Docs. Приведенный код заполняет левую верхнюю ячейку первого листа активной таблицы:

Var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets(); sheet.getRange("A1").setValue("Содержимое ячейки");

А этот код создает копию текстового документа и кладет его в определенное место:

Var source = DocsList.getFileById("SOURCE_ID"); var newFile = source.makeCopy("новое имя файла"); var targetFolder = DocsList.getFolderById("ID папки, в которой будет размещен свежесозданный файл"); newFile.addToFolder(targetFolder);

А вот так можно провести замену строк в текстовом документе:

Var doc = DocumentApp.openById("ID редактируемого документа"); doc.editAsText().replaceText("старый текст", "новый текст"); Logger.log(doc.getText())

Следующий пример кода подсвечивает определенные слова в тексте:

Var doc = DocumentApp.openById("id документа"); var textToHighlight = "текст для подсветки"; var highlightStyle = {}; highlightStyle = "#FF0000"; var paras = doc.getParagraphs(); var textLocation = {}; for (i=0; i

WARNING

Имей в виду, что Gmail не только защищает от входящего спама, но и ограничивает рассылку исходящего. Больше 500 писем за сутки с помощью Google Apps Script не выйдет.

Работа с Google Translate

С помощью Google Apps Script можно переводить текстовые строки с одного языка на другой. Пример:

Var word = LanguageApp.translate("кукушка", "ru", "es"); Logger.log(word); // Скрипт выведет в консоль "cuco" - кукушка по-испански

Коды для языков можно посмотреть в адресной строке сервиса Google Translate.

INFO

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

Работа с Google Drive

Google Apps Script может работать с файлами пользователя, размещенными на Google Drive. Этот скрипт выводит в консоль имена всех файлов пользователя:

Var files = DriveApp.getFiles(); while (files.hasNext()) { var file = files.next(); Logger.log(file.getName()); }

К файлам можно применять несколько десятков различных методов. Вот некоторые из них:

  • addEditor(«email пользователя») - наделяет пользователя правами на редактирование файла;
  • getOwner() - узнать владельца файла;
  • makeCopy(«имя», «путь») - создать копию файла;
  • getLastUpdated() - возвращает пользователя, который внес последнее изменение.

Работа с Google Contacts

Адресная книга также может быть подвергнута автоматизированной обработке. Приведенный ниже код копирует все контакты из группы «Редакция» в лист Google Spread Sheet:

Var group = ContactsApp.getContactGroup("Редакция"); var contacts = group.getContacts(); var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("Контакты редакции"); for (var i in contacts) { // Сохраняем данные о контактах в ячейки: имя, фамилия, номер телефона sheet.getRange(i, 1, 1, 1).setValue(contacts[i].getGivenName()); sheet.getRange(i, 2, 1, 1).setValue(contacts[i].getFamilyName()); sheet.getRange(i, 3, 1, 1).setValue(contacts[i].getPhones()); // И еще есть метод для получения номера пейджера (!) контакта sheet.getRange(i, 4, 1, 1).setValue(contacts[i].getPager()); }

Работа с Google Tasks

С помощью Google Apps Scripts можно работать с сервисом Google Task - создавать новые задачи и парсить уже имеющиеся.

Этот код создает новое дело в списке:

// Найти ID тасклиста можно внутри адресной строки в сервисе Google Task var taskListId="id тасклиста,"; var newTask = { title: "Выбросить финиковые косточки", notes: "Не забыть косточки под кроватью" }; newTask = Tasks.Tasks.insert(newTask , taskListId); Logger.log ("Задача с ID "%s" создана", newTask.id);

А таким образом можно вывести список нумерованных задач в консоль:

// Кладем все задачи списка в массив var tasks = Tasks.Tasks.list(taskListId); for (var i = 0; i < tasks.items.length; i++) { var task = tasks.items[i]; Logger.log(i. ". ",%s, task.title, task.id); }

Задачи можно перемещать из одного списка в другой с помощью метода move, дополнять с помощью метода update и удалять с помощью метода delete.

Всего есть несколько десятков методов для работы с задачами. Полный их список доступен вGoogle Apps Script References для Google Tasks .

Работа с календарем

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

Var timeZone = CalendarApp.getTimeZone(); var description = Utilities.formatString("%s from %s to %s", "заголовок события", dateString_("дата начала события", "часовой пояс"), dateString_("дата конца события", "часовой пояс")); CalendarApp.createEventFromDescription(description);

Формы обмена скриптами

Гаджет - это приложение-контейнер, которое размещается на веб-странице и исполняет определенные функции. Примеры: мини-блок в углу страницы с прогнозом погоды или календарем. Чтобы поместить Google Script внутрь гаджета, необходимо в меню редактора скриптов выбрать пункт «Publish -> Deploy as web app».

INFO

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

События

Можно настроить скрипт так, чтобы он выполнялся после определенного события. К примеру, после открытия/редактирования электронной таблицы или отправки данных формы.

Работа с базами данных

Для этого существует сервис для работы с базами данных Google Cloud SQL. По сути - классический MySQL в облаке. Может взаимодействовать с Google Apps Script по стандарту Java Database Connectivity. Вот пример кода, который производит чтение записей из таблицы:

Var conn = Jdbc.getConnection(dbUrl, user, userPwd); var start = new Date(); var stmt = conn.createStatement(); stmt.setMaxRows(1000); var results = stmt.executeQuery("SELECT * FROM entries"); var numCols = results.getMetaData().getColumnCount(); while (results.next()) { var rowString = ""; for (var col = 0; col < numCols; col++) { rowString += results.getString(col + 1) + "\t"; } Logger.log(rowString) } results.close(); stmt.close();

Стоимость использования сервиса - 88 долларов в год за 10 Гб свободного места. С другими базами данных Google Apps Script, к сожалению, работать не может. Если ты запланировал написать скрипт, который должен взаимодействовать с данными, не стоит сразу расстраиваться или истощать свой бюджет пожертвованиями на закупку квадроциклов для жителей Кремниевой долины. Есть два способа выкрутиться из этой ситуации:

  • первый - хранить данные в виде таблиц на Google Drive;
  • второй - разместить базу на стороннем сервере, на нем же разместить {php}{hode.js}{python}{и т. д.} скрипт, который будет выполнять к ней запрос и возвращать ответ в формате JSON или XML, а его, в свою очередь, подвергать парсингу внутри GS.

Приложения, с которыми может взаимодействовать Google Apps Script

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

  • Google Mail - почтовый клиент. Наиболее интересна в нем возможность отправлять письма людям, адреса которых неизвестны. Для этого надо включить настройку «Отправлять письма пользователям Google+» и ввести имя и фамилию получателя в поле «Кому».
  • Google Calendar - органайзер. Самое удобное в нем - возможность отправки SMS-уведомлений о событиях на номера российских операторов.
  • Google Contacts - приложение для хранения контактов. Самый цимес его в том, что если ты случайно синхронизируешь свой список контактов с новым смартфоном и все имена сотрутся, то сможешь попросить у Google резервную копию предыдущей версии, которая навечно сохранена в его архивах.
  • Google Drive - облачное хранилище данных. 15 Гб, на которых также размещаются данные всех других приложений, доступны бесплатно.
  • Google Maps - онлайн-карты. Жителям СНГ повезло, у них есть альтернативный инструмент для построения маршрутов и просмотра панорам улиц - Яндекс.Карты. Для жителей большинства других территорий альтернатив нет. Google Maps - единственная всемирная картографическая система, позволяющая искать населенные пункты, вводя названия на языке государства, в котором они находятся. Допустим, не Kotlas, а Котлас, не Vagharshapat, а Վաղարշապատ.
  • Google Docs - онлайн-редактор офисных документов. Во время написания статьи этот сервис совершил мега-прорыв - появилась возможность редактировать документы, созданные в Microsoft Office. Это произошло после интеграции сервиса с функционалом приложения Quickoffice. Ради интереса попробовала отредактировать в Google Docs пояснительную записку к диплому (как пример документа с простейшим форматированием). Преобразование docx в гугл-формат пришлось ждать около минуты, и внешний вид текста явно отличался от оригинала.
  • Google Forms позволяет создавать формы для сбора различных данных (онлайн-опрос, страницу регистрации на событие, обратную связь для сайта и прочее), которые можно привязать к таблицам в различных форматах (HTML, CVS, TXT, PDF, RSS, XLS, ODF). Собранные данные хранятся на Google Drive.
  • Google Sites - бесплатный хостинг (100 Мб) с предельно ограниченным функционалом и собственной wiki-разметкой. Полнофункциональный HTML, а также CSS и JS недоступны.

SRC

По старой доброй традиции, которой уже почти три месяца, мы выложили несколько исходничков на GitHub:

  • autodeletemail.gs - удаляет письма, с момента получения которых прошло n-ное количество дней;
  • snoozeemails.gs - скрипт для повторной отправки самому себе прочитанных писем через определенный промежуток времени;
  • sendsmsaboutemails.gs - настраивает отправку SMS в случае получения писем, соответствующих определенным критериям. Перед его использованием надо указать свой номер телефона Google Calendar;
  • savemailtopdfindrive.gs - сохраняет содержимое письма в файлах на Google Drive;
  • fromcalendartospreadsheet.gs - записывает информацию из календаря в электронную таблицу;
  • sendmailsfromspreadsheet.gs - рассылает письма по списку адресов из электронной таблицы;
  • createdocsfromspread.gs - генерирует текстовые документы из данных электронной таблицы.

Advanced Google Services

У Google есть множество API для разработчиков, которые можно внедрять в программы, написанные на Google Apps Script. Для этого надо подключить в редакторе скриптов эту возможность (в меню Resources, далее Advanced Google services). После этого можно будет задействовать возможности следующих сервисов:

  • Google AdSense - сервис для работы с контекстными рекламными объявлениями.
  • Google Analytics - осуществляет анализ посещаемости веб-сайтов и мобильных приложений.
  • Google BigQuery - позволяет производить различные манипуляции (запись, чтение, перемещение и так далее) над большими объемами данных, а также анализировать их.
  • Google Fusion Tables - экспериментальный сервис, позволяющий размещать данные в облаке, отправлять к ним запросы и получать результаты выполнения в формате JSON и CSV. Из которых, в свою очередь, можно формировать электронные таблицы, карты, графики и другие виды визуального представления данных.
  • Google Domains - сервис для регистрации доменов (новый проект, открылся в конце июня 2014 года).
  • Google Mirror - API для взаимодействия с Google Glass.
  • Google Prediction - сервис для анализа данных (основанный на технологии машинного обучения). Позволяет внедрять в приложения следующие фичи: классификатор документов и писем, расчет churn rate (показатель оттока пользователей), детектор спама, оптимизатор маршрутизации сообщений и множество других интересных вещей, достойных отдельной статьи.
  • Google Tasks - встроенный в Gmail сервис для составления списков дел.
  • Google URL Shortener - любимый нашим журналом сервис для сокращения длинных ссылок.
  • YouTube Analytics - сервис для анализа статистики просмотров видео на YotTube. Примечателен возможностью узнать демографические и географические характеристики пользователей, смотрящих определенный видеоролик. Ведь интересно выложить очередную копию клипа на песню «До свидания, кореша» и проанализировать, какого пола, возраста и места жительства ее слушатели.

Всем привет

Вариантов использования Google Apps Scripts множество. Мой друг работал с иностранным заказчиком и тот просил каждый день отчет ему на почту с текстом кто и что делал. В результате он попросил сотрудников трэкать все в гугл таблицу не позднее 21:00, потом стартовал скрипт и собирал данные и слал по нужному адресу.
В статье я приведу простой и, как мне кажется, полезный пример использования Google Apps Scripts.

Для программного доступа к данным от Flurry выполните инструкции по ссылке:
support.flurry.com/index.php?title=API/GettingStarted

В итоге вы получите ключ, который нужно сохранить для использования в скрипте.
Еще понадобится “ProjectApiKey” от Flurry, который вы уже используете в мобильном приложении.

Пишем скрипт

Точнее уже все написано, тут я просто опишу, как это запустить.
Идем по ссылке и забираем тексты скриптов github.com/chapayGhub/flurrymetricstospreadsheet
В проекте, который мы создали до этого, нужно создать такие же.

Теперь, после того как все сделали, откройте Settings.gs и в нем
Введите свои ключи от Flurry
//store Flurry credentials FlurryCredentials = (function() { var obj = {}; obj.AccessCode = "?????"; obj.ApiKies = { iPad: "????", }; return obj; })();

Тут введите свое имя электронной почты, лучше от гугл(другие я не проверял)
obj.emails = ["?????email1", "?????email2", "?????email3"];

Скрипт настроен на получение метрик приложения из Flurry + на ваш почтовый ящик придет письмо, что вы добавлены как редактор.

Запускаем и дебажим

В левой панели выберем скрипт «СreateStatisticReport»
В верхней панели около кнопки с жуком в выпадающем списке выбираем «makeStatisticReport»

Теперь все просто верхняя панель имеет две «супер» кнопки понятные любому программисту.

Запуск по расписанию

Выполните действия на картинках

Нюансы

Сделать так чтобы скрипт работал каждый раз с одним документом
Сразу запустите на выполнение не на дебаг. Должен создаться документ в папке «Statistic» и к вам на почту придут письма, в одном из которых будет идентификатор созданного документа
Присвойте его переменной расположенной в скрипте Settings.gs.
obj.mainStatisticDocID
Теперь скрипт будет обнолять именно этот документ, а не создавать каждый раз новый. Если данный параметр не введен, то при старте скрипт пытается найти документ по несуществующему идентификатору, естественно не находит его, бросает исключение(в дебаге может быть остановка в этом месте выполнения), но это исключение отлавливается и создается новый документ.
Логирование
Используйте следующий метод
Logger.log("ТЭКСТ!");
Чтобы просмотреть вывод выберите следующий пункт из меню

Нужна помощь

Браузерный редактор вещь удобная, но вот если скрипт будет более объемным то в нем не совсем удобно работать.
По этой ссылке ниже описано как можно выгружать и загружать проект.
developers.google.com/apps-script/import-export

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

Вроде все и описано, но вот что-то не выстрелило у меня).

Может уже кто-то сделал такое или есть полезные ссылки? Буду благодарен.

Ссылки

Заглавная из этой точки можно начинать искать ответы на вопросы по Google Apps Scripts
developers.google.com/apps-script

P.S.
Я никогда не работал с подобными сервисами и обладаю поверхностным знанием JavaScript, буду рад конструктивным замечаниям.

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

Основы использования

Начать писать Google Apps скрипты очень просто. Первым делом надо открыть редактор скриптов в любом приложении, взаимодействие с которым будем автоматизировать. В Google Docs он находится в меню «Инструменты -> Редактор скриптов». Далее надо выбрать проект, внутри которого будет располагаться скрипт (см. рис. 1). В открывшемся окне пишем код:

Function FirstExampleFunc() { Browser.msgBox("Это таки JS! "); }

Декларированную функцию можно запускать из «Инструменты -> Управление скриптами» или сделать для нее отдельную кнопку. Для этого надо прописать еще одну функцию:

Function menu() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var entries = [ {name: "Моя единственная функция", functionName: "FirstExampleFunc"}, ss.addMenu("Мои функции", entries); }

Теперь в нашем меню есть пункт под названием ExampleFunc, при клике на который открывается однострочное подменю «Моя единственная функция».

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

WARNING

Перед запуском скрипта не забудь сделать резервную копию важной информации. Действия, выполненные GS, нельзя отменить нажатием .

Работа с Google Docs

Когда встает задача автоматизации работы с офисными документами, первым делом на ум приходит VBA, одно упоминание которого оказывает на многих тотальное антиэкстатическое воздействие, вызывая болезненные воспоминания из школьного и университетского прошлого. Google Script однозначно удобнее и доступнее для понимания. Особенно для веб-разработчиков, ведь это же родной, привычный и любимый JS! Разберем пару примеров скриптов для Google Docs. Приведенный код заполняет левую верхнюю ячейку первого листа активной таблицы:

Var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets(); sheet.getRange("A1").setValue("Содержимое ячейки");

А этот код создает копию текстового документа и кладет его в определенное место:

Var source = DocsList.getFileById("SOURCE_ID"); var newFile = source.makeCopy("новое имя файла"); var targetFolder = DocsList.getFolderById("ID папки, в которой будет размещен свежесозданный файл"); newFile.addToFolder(targetFolder);

А вот так можно провести замену строк в текстовом документе:

Var doc = DocumentApp.openById("ID редактируемого документа"); doc.editAsText().replaceText("старый текст", "новый текст"); Logger.log(doc.getText())

Следующий пример кода подсвечивает определенные слова в тексте:

Var doc = DocumentApp.openById("id документа"); var textToHighlight = "текст для подсветки"; var highlightStyle = {}; highlightStyle = "#FF0000"; var paras = doc.getParagraphs(); var textLocation = {}; for (i=0; i

Подробности:

  • Google Apps Script References для Google Doсument
  • Google Apps Script References для Google Spreadsheet

INFO

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

Работа с почтой

Письмо отправляется одной короткой строкой: MailApp.sendEmail(«[email protected]», «тема письма», «текст письма») Если добавить к ней еще немного кода, то можно организовать рассылку по списку адресов из электронной таблицы (исходник ищи в приложении):

Var sheet = SpreadsheetApp.getActiveSheet(); var numRows = sheet.getLastRow(); var dataRange = sheet.getRange(1, 1, numRows, 2) var data = dataRange.getValues(); for (var i = 0; i < data.length; ++i) { var row = data[i]; var name = row; var email = row; var subject = "Тема письма"; var message = "Здравствуйте, " + name + "!"; MailApp.sendEmail(email, subject, message); }

Помимо рассылок, с помощью GS можно производить автоматизированную обработку содержимого почтового ящика. Пример — удаление всех писем от адресата, на которого ты обиделся:

Var threads = GmailApp.search("[email protected]"); for(var i = 0; i < threads.length; i++) { var messages = threads[i].getMessages(); for(var j = 0; j < messages.length; j++) { messages[j].moveToTrash(); } }

WARNING

Имей в виду, что Gmail не только защищает от входящего спама, но и ограничивает рассылку исходящего. Больше 500 писем за сутки с помощью Google Apps Script не выйдет.

Работа с Google Translate

С помощью Google Apps Script можно переводить текстовые строки с одного языка на другой. Пример:

Var word = LanguageApp.translate("кукушка", "ru", "es"); Logger.log(word); // Скрипт выведет в консоль "cuco" — кукушка по-испански

Коды для языков можно посмотреть в адресной строке сервиса Google Translate.

INFO

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

Работа с Google Drive

Google Apps Script может работать с файлами пользователя, размещенными на Google Drive. Этот скрипт выводит в консоль имена всех файлов пользователя:

Var files = DriveApp.getFiles(); while (files.hasNext()) { var file = files.next(); Logger.log(file.getName()); }

К файлам можно применять несколько десятков различных методов. Вот некоторые из них:

  • addEditor(«email пользователя») — наделяет пользователя правами на редактирование файла;
  • getOwner() — узнать владельца файла;
  • makeCopy(«имя», «путь») — создать копию файла;
  • getLastUpdated() — возвращает пользователя, который внес последнее изменение.

Работа с Google Contacts

Адресная книга также может быть подвергнута автоматизированной обработке. Приведенный ниже код копирует все контакты из группы «Редакция» в лист Google Spread Sheet:

Var group = ContactsApp.getContactGroup("Редакция"); var contacts = group.getContacts(); var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("Контакты редакции"); for (var i in contacts) { // Сохраняем данные о контактах в ячейки: имя, фамилия, номер телефона sheet.getRange(i, 1, 1, 1).setValue(contacts[i].getGivenName()); sheet.getRange(i, 2, 1, 1).setValue(contacts[i].getFamilyName()); sheet.getRange(i, 3, 1, 1).setValue(contacts[i].getPhones()); // И еще есть метод для получения номера пейджера (!) контакта sheet.getRange(i, 4, 1, 1).setValue(contacts[i].getPager()); }

Работа с Google Tasks

С помощью Google Apps Scripts можно работать с сервисом Google Task — создавать новые задачи и парсить уже имеющиеся.

Этот код создает новое дело в списке:

// Найти ID тасклиста можно внутри адресной строки в сервисе Google Task var taskListId="id тасклиста,"; var newTask = { title: "Выбросить финиковые косточки", notes: "Не забыть косточки под кроватью" }; newTask = Tasks.Tasks.insert(newTask , taskListId); Logger.log ("Задача с ID "%s" создана", newTask.id);

А таким образом можно вывести список нумерованных задач в консоль:

// Кладем все задачи списка в массив var tasks = Tasks.Tasks.list(taskListId); for (var i = 0; i < tasks.items.length; i++) { var task = tasks.items[i]; Logger.log(i. ". ",%s, task.title, task.id); }

Задачи можно перемещать из одного списка в другой с помощью метода move, дополнять с помощью метода update и удалять с помощью метода delete.

Работа с календарем

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

Var timeZone = CalendarApp.getTimeZone(); var description = Utilities.formatString("%s from %s to %s", "заголовок события", dateString_("дата начала события", "часовой пояс"), dateString_("дата конца события", "часовой пояс")); CalendarApp.createEventFromDescription(description);

Формы обмена скриптами

Гаджет — это приложение-контейнер, которое размещается на веб-странице и исполняет определенные функции. Примеры: мини-блок в углу страницы с прогнозом погоды или календарем. Чтобы поместить Google Script внутрь гаджета, необходимо в меню редактора скриптов выбрать пункт «Publish -> Deploy as web app».

INFO

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

События

Можно настроить скрипт так, чтобы он выполнялся после определенного события. К примеру, после открытия/редактирования электронной таблицы или отправки данных формы.

Работа с базами данных

Для этого существует сервис для работы с базами данных Google Cloud SQL. По сути — классический MySQL в облаке. Может взаимодействовать с Google Apps Script по стандарту Java Database Connectivity. Вот пример кода, который производит чтение записей из таблицы:

Var conn = Jdbc.getConnection(dbUrl, user, userPwd); var start = new Date(); var stmt = conn.createStatement(); stmt.setMaxRows(1000); var results = stmt.executeQuery("SELECT * FROM entries"); var numCols = results.getMetaData().getColumnCount(); while (results.next()) { var rowString = ""; for (var col = 0; col < numCols; col++) { rowString += results.getString(col + 1) + "\t"; } Logger.log(rowString) } results.close(); stmt.close();

Стоимость использования сервиса — 88 долларов в год за 10 Гб свободного места. С другими базами данных Google Apps Script, к сожалению, работать не может. Если ты запланировал написать скрипт, который должен взаимодействовать с данными, не стоит сразу расстраиваться или истощать свой бюджет пожертвованиями на закупку квадроциклов для жителей Кремниевой долины. Есть два способа выкрутиться из этой ситуации:

  • первый — хранить данные в виде таблиц на Google Drive;
  • второй — разместить базу на стороннем сервере, на нем же разместить {php}{hode.js}{python}{и т. д.} скрипт, который будет выполнять к ней запрос и возвращать ответ в формате JSON или XML, а его, в свою очередь, подвергать парсингу внутри GS.

Приложения, с которыми может взаимодействовать Google Apps Script

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

  • Google Mail — почтовый клиент. Наиболее интересна в нем возможность отправлять письма людям, адреса которых неизвестны. Для этого надо включить настройку «Отправлять письма пользователям Google+» и ввести имя и фамилию получателя в поле «Кому».
  • Google Calendar — органайзер. Самое удобное в нем — возможность отправки SMS-уведомлений о событиях на номера российских операторов.
  • Google Contacts — приложение для хранения контактов. Самый цимес его в том, что если ты случайно синхронизируешь свой список контактов с новым смартфоном и все имена сотрутся, то сможешь попросить у Google резервную копию предыдущей версии, которая навечно сохранена в его архивах.
  • Google Drive — облачное хранилище данных. 15 Гб, на которых также размещаются данные всех других приложений, доступны бесплатно.
  • Google Maps — онлайн-карты. Жителям СНГ повезло, у них есть альтернативный инструмент для построения маршрутов и просмотра панорам улиц — Яндекс.Карты. Для жителей большинства других территорий альтернатив нет. Google Maps — единственная всемирная картографическая система, позволяющая искать населенные пункты, вводя названия на языке государства, в котором они находятся. Допустим, не Kotlas, а Котлас, не Vagharshapat, а Վաղարշապատ.
  • Google Docs — онлайн-редактор офисных документов. Во время написания статьи этот сервис совершил мега-прорыв — появилась возможность редактировать документы, созданные в Microsoft Office. Это произошло после интеграции сервиса с функционалом приложения Quickoffice. Ради интереса попробовала отредактировать в Google Docs пояснительную записку к диплому (как пример документа с простейшим форматированием). Преобразование docx в гугл-формат пришлось ждать около минуты, и внешний вид текста явно отличался от оригинала.
  • Google Forms позволяет создавать формы для сбора различных данных (онлайн-опрос, страницу регистрации на событие, обратную связь для сайта и прочее), которые можно привязать к таблицам в различных форматах (HTML, CVS, TXT, PDF, RSS, XLS, ODF). Собранные данные хранятся на Google Drive.
  • Google Sites — бесплатный хостинг (100 Мб) с предельно ограниченным функционалом и собственной wiki-разметкой. Полнофункциональный HTML, а также CSS и JS недоступны.

SRC

По старой доброй традиции, которой уже почти три месяца, мы выложили несколько исходничков на GitHub:

  • autodeletemail.gs — удаляет письма, с момента получения которых прошло n-ное количество дней;
  • snoozeemails.gs — скрипт для повторной отправки самому себе прочитанных писем через определенный промежуток времени;
  • sendsmsaboutemails.gs — настраивает отправку SMS в случае получения писем, соответствующих определенным критериям. Перед его использованием надо указать свой номер телефона Google Calendar;
  • savemailtopdfindrive.gs — сохраняет содержимое письма в файлах на Google Drive;
  • fromcalendartospreadsheet.gs — записывает информацию из календаря в электронную таблицу;
  • sendmailsfromspreadsheet.gs — рассылает письма по списку адресов из электронной таблицы;
  • createdocsfromspread.gs — генерирует текстовые документы из данных электронной таблицы.

Advanced Google Services

У Google есть множество API для разработчиков, которые можно внедрять в программы, написанные на Google Apps Script. Для этого надо подключить в редакторе скриптов эту возможность (в меню Resources, далее Advanced Google services). После этого можно будет задействовать возможности следующих сервисов:

  • Google AdSense — сервис для работы с контекстными рекламными объявлениями.
  • Google Analytics — осуществляет анализ посещаемости веб-сайтов и мобильных приложений.
  • Google BigQuery — позволяет производить различные манипуляции (запись, чтение, перемещение и так далее) над большими объемами данных, а также анализировать их.
  • Google Fusion Tables — экспериментальный сервис, позволяющий размещать данные в облаке, отправлять к ним запросы и получать результаты выполнения в формате JSON и CSV. Из которых, в свою очередь, можно формировать электронные таблицы, карты, графики и другие виды визуального представления данных.
  • Google Domains — сервис для регистрации доменов (новый проект, открылся в конце июня 2014 года).
  • Google Mirror — API для взаимодействия с Google Glass.
  • Google Prediction — сервис для анализа данных (основанный на технологии машинного обучения). Позволяет внедрять в приложения следующие фичи: классификатор документов и писем, расчет churn rate (показатель оттока пользователей), детектор спама, оптимизатор маршрутизации сообщений и множество других интересных вещей, достойных отдельной статьи.
  • Google Tasks — встроенный в Gmail сервис для составления списков дел.
  • Google URL Shortener — любимый нашим журналом сервис для сокращения длинных ссылок.
  • YouTube Analytics — сервис для анализа статистики просмотров видео на YotTube. Примечателен возможностью узнать демографические и географические характеристики пользователей, смотрящих определенный видеоролик. Ведь интересно выложить очередную копию клипа на песню «До свидания, кореша» и проанализировать, какого пола, возраста и места жительства ее слушатели.