К основному контенту

Расширенные службы Google

Photo by Igor Ovsyannykov on Unsplash

Расширенные службы Google

Расширенные службы в Apps Script позволяют опытным разработчикам подключаться к определенным общедоступным API Google через более простые надстройки, чем использовать HTTP-интерфейсы представленные в языке. Расширенные службы - это, по сути, тонкие обертки вокруг этих API Google. Они работают так же, как встроенные сервисы Apps Script, например, они предоставляют автозаполнение, а приложение Script Script автоматически обрабатывает поток авторизации. Однако вы должны включить расширенную службу в консоли разработчика, прежде чем спользовать ее в скрипте.
Чтобы узнать, какие API-интерфейсы Google доступны в качестве расширенных служб, ознакомьтесь с разделом «Расширенные службы Google» справочника. Если вы хотите использовать Google API, который недоступен в качестве расширенной службы, просто подключитесь к нему, как и к любому другому внешнему API.

Расширенные службы или HTTP?

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

Требования

Для включения расширенных служб требуется, чтобы у вас был доступ к проекту Cloud Platform. Когда вы работаете с проектом в Team Drives, ваш доступ к проекту Cloud Platform может быть ограничен; см. раздел «Руководство по проектам Cloud Project и Team Drives».
Возможно, вы захотите переключить ваш сценарий для использования стандартного проекта Cloud Platform, чтобы иметь прямой доступ к информации мониторинга API в панели инструментов API Console. Это также гарантирует, что вы и ваши сотрудники получили доступ к настройкам проекта Cloud Platform, пока сценарий находится в Team Drive.

Включение расширенных служб

Чтобы воспользоваться расширенной службой Google, выполните следующие действия:
  1. В редакторе сценариев выберите Ресурсы > Дополнительные функции Google ....
  2. В появившемся диалоговом окне нажмите переключатель включения / выключения рядом с сервисом, который вы хотите использовать.
  3. В нижней части диалогового окна нажмите ссылку для консоли Google API.
  4. В консоли нажмите в поле фильтра и введите часть имени API (например, “Drive”), а затем щелкните имя, как только увидите его.
  5. На следующем экране нажмите «Включить API».
  6. Закройте API-консоль и вернитесь в редактор сценариев. Нажмите ОК в диалоговом окне. Включенный расширенный сервис теперь доступен в автозаполнении.

Как определяются сигнатуры методов

Расширенные службы обычно используют одни и те же объекты, имена методов и параметры как и соответствующие общедоступные API, хотя сигнатуры методов переводятся для использования в Script Apps. Функция автозаполнения редактора сценариев обычно предоставляет достаточно информации для начала работы, но приведенные ниже правила объясняют, как Apps Script генерирует подпись метода из общедоступного API Google.
Запросы API Google могут принимать различные типы данных, включая параметры пути, параметры запроса, тело запроса и / или вложение для загрузки мультимедиа. Соответствующая подпись метода в скрипте Google Apps имеет следующие аргументы:
  1. Тело запроса (обычно ресурс), как объект JavaScript.
  2. Путь или требуемые параметры, как отдельные аргументы.
  3. Медиа вложения, как Blob аргументы.
  4. Необязательные параметры, как объект JavaScript, сопоставляющий имена параметров со значениями.
Если у метода нет элементов в данной категории, эта часть сигнатуры опущена.
Есть некоторые особые исключения, о которых нужно знать:
  • Для методов, которые принимают загрузку мультимедиа, параметр uploadType устанавливается автоматически.
  • Методы с именем delete в API Google называются remove в Script Apps, так как delete является зарезервированным словом в JavaScript.

Поддержка расширенных служб

Расширенные услуги - это всего лишь тонкие обертки, которые позволяют использовать API Google в сценарии приложений. Таким образом, любая проблема, возникающая при их использовании, обычно является проблемой с базовым API, а не с самим скриптом Apps.
Если вы столкнулись с проблемой при использовании расширенной службы, следует сообщить о ней с помощью инструкций поддержки для базового API. Ссылки на эти инструкции по поддержке приведены в каждом расширенном руководстве по обслуживанию в разделе «Apps Script Reference».

Комментарии

Популярные сообщения из этого блога

Удаление строк по условию

Часто возникает задача удаления строк из Таблицы Google по какому-либо условию. Разнообразие условий так велико, что порой приходится создавать метод "удаления строк" снова и снова. Довольно утомительно. Для простых офсных скриптов можно применить сниппет, описанный ниже. Основная идея заключается в том, чтобы взять весь массив данных и перебрать его в обратном порядке. При переборе каждая строка передается в функцию обратного вызова, которая принимет решение удалить строку или нет. Для оптимизации количество последовательных строк суммируется, и для удаления применяется метод deleteRows(rowPosition, howMany) класса Sheet В примере ниже скрипт удаляет строки автивного листа, в которых ячейки из диапазона D27:D77 и F27:F77 попарно пустые

Триггеры Google Apps Script

Все триггеры в скриптах делятся по виду события, типу установки и области применения. Области применения Таблицы Формы Документы Сайты Автономные скрипты  События Open - происходит при открытии файла в приложении Гугл. Например, Формы создают это событие только при открытии в режиме редактирвоания. Edit - происходит при завершении ввода данных в ячейку Таблицы пользователем. Только Таблицы. Только пользователем. Install - автоматически вызывается при установке дополнения. Change - возникает при других (не изменение данных ячейки, например, назначение цвета или ширины колонки) изменених Таблицы вызванных пользователем. Только Таблицы. Только пользователем. Form submit - исполнится только тогда, когда придет ответ от респондента Формы. Time-driven - отложенный триггер действия, срабатывающий по истечении времени Get - событие отрабатывающее get-запросы к веб-приложению Post - событие отрабатывающее post-запросы к веб-приложению Типы установок Simple trig

Как открыть ссылку с помощью Google Apps Script?

Часто возникает задача, в которой требуется по результатам работы скрипта открыть ссылку в новом окне/вкладке браузера. В Google Apps Script не существует методов взаимодействия с браузером. Единственная более-менее реальная связь между пользователем и сервером скрипта находится в интерфейсе реализуемой программы. Это может быть Таблица, Документ или Web приложение. Все они реализуются через HtmlService. Например, SpreadsheetApp.getUi().showModelessDialog(htmlOutput, "title"); Понятно, что в построенном htmlOutput , можно выполнить код для текущего window . Например, window.open(url, "_blank"); Идея обернутая кодом ниже по тексту. Пользователь выбирает ячейку в Таблице (или все, что угодно, что формирует ссылку). На сервере На клиенте строится окно диалога, открывается новая вкладка браузера и закрывается окно диалога, при успешном выполнении условия. Иначе появляется сообщение, что переданный параметр не ссылка. Этот метод имеет существенный недостаток