Доступ и управление публикацией сценариев и триггерами. Этот класс позволяет пользователям создавать триггеры сценария и управлять публикацией сценария как службы.
Характеристики
Имущество | Тип | Описание |
---|---|---|
AuthMode | AuthMode | Перечисление, определяющее, какие категории авторизованных служб Apps Script может выполнять с помощью запускаемой функции. |
AuthorizationStatus | AuthorizationStatus | Перечисление, обозначающее статус авторизации скрипта. |
EventType | EventType | Перечисление, обозначающее тип инициированного события. |
InstallationSource | InstallationSource | Перечисление, обозначающее, как скрипт был установлен пользователю как надстройка. |
TriggerSource | TriggerSource | Перечисление, обозначающее источник события, вызывающего срабатывание триггера. |
WeekDay | Weekday | Перечисление, представляющее дни недели. |
Методы
Метод | Тип возврата | Краткое описание |
---|---|---|
deleteTrigger(trigger) | void | Удаляет данный триггер, чтобы он больше не работал. |
getAuthorizationInfo(authMode) | AuthorizationInfo | Получает объект, используемый для определения необходимости авторизации этого скрипта для использования одной или нескольких служб, а также для предоставления URL-адреса диалогового окна авторизации. |
getIdentityToken() | String | Получает токен удостоверения OpenID Connect для действующего пользователя, если была предоставлена область openid . |
getInstallationSource() | InstallationSource | Возвращает значение перечисления, указывающее, как сценарий был установлен в качестве надстройки для текущего пользователя (например, установил ли его пользователь лично через Интернет-магазин Chrome или администратор домена установил его для всех пользователей). |
getOAuthToken() | String | Получает маркер доступа OAuth 2.0 для действующего пользователя. |
getProjectTriggers() | Trigger[] | Получает все устанавливаемые триггеры, связанные с текущим проектом и текущим пользователем. |
getScriptId() | String | Получает уникальный идентификатор проекта скрипта. |
getService() | Service | Получает объект, используемый для управления публикацией скрипта в виде веб-приложения. |
getUserTriggers(document) | Trigger[] | Получает все устанавливаемые триггеры, принадлежащие этому пользователю в данном документе, только для этого скрипта или надстройки. |
getUserTriggers(form) | Trigger[] | Получает все устанавливаемые триггеры, принадлежащие этому пользователю в заданной форме, только для этого скрипта или надстройки. |
getUserTriggers(spreadsheet) | Trigger[] | Получает все устанавливаемые триггеры, принадлежащие этому пользователю в данной электронной таблице, только для этого скрипта или надстройки. |
invalidateAuth() | void | Аннулирует авторизацию, которую действующий пользователь должен выполнить для выполнения текущего скрипта. |
newStateToken() | StateTokenBuilder | Создает построитель для токена состояния, который можно использовать в API обратного вызова (например, в потоке OAuth). |
newTrigger(functionName) | TriggerBuilder | Начинает процесс создания устанавливаемого триггера, который при срабатывании вызывает заданную функцию. |
Подробная документация
deleteTrigger(trigger)
Удаляет данный триггер, чтобы он больше не работал.
// Deletes all triggers in the current project. var triggers = ScriptApp.getProjectTriggers(); for (var i = 0; i < triggers.length; i++) { ScriptApp.deleteTrigger(triggers[i]); }
Параметры
Имя | Тип | Описание |
---|---|---|
trigger | Trigger | Триггер для удаления. |
Авторизация
Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :
-
https://www.googleapis.com/auth/script.scriptapp
getAuthorizationInfo(authMode)
Получает объект, используемый для определения необходимости авторизации этого скрипта для использования одной или нескольких служб, а также для предоставления URL-адреса диалогового окна авторизации. Если скрипт опубликован как надстройка , использующая устанавливаемые триггеры , эта информация может использоваться для управления доступом к участкам кода, для которых у пользователя нет необходимой авторизации. В качестве альтернативы надстройка может попросить пользователя открыть URL-адрес диалогового окна авторизации для решения проблемы.
var authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL); status = authInfo.getAuthorizationStatus(); url = authInfo.getAuthorizationUrl();
Параметры
Имя | Тип | Описание |
---|---|---|
authMode | AuthMode | режим авторизации, для которого запрашивается авторизационная информация; почти во всех случаях значение для authMode должно быть ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL) , поскольку никакой другой режим авторизации не требует, чтобы пользователи предоставляли авторизацию |
Возвращаться
AuthorizationInfo
— объект, который может предоставлять информацию о статусе авторизации пользователя.
getIdentityToken()
Получает токен удостоверения OpenID Connect для действующего пользователя, если была предоставлена область openid
. Эта область не включена по умолчанию, и вы должны добавить ее как явную область в файле манифеста, чтобы запросить ее. Включите области https://www.googleapis.com/auth/userinfo.email
или https://www.googleapis.com/auth/userinfo.profile
, чтобы получить дополнительную информацию о пользователе в токене.
Возвращенный токен идентификатора представляет собой закодированный веб-токен JSON (JWT) , и его необходимо декодировать, чтобы извлечь из него информацию. В следующих примерах показано, как расшифровать токен и извлечь идентификатор профиля Google действующего пользователя.
var idToken = ScriptApp.getIdentityToken(); var body = idToken.split('.')[1]; var decoded = Utilities.newBlob(Utilities.base64Decode(body)).getDataAsString(); var payload = JSON.parse(decoded); var profileId = payload.sub; Logger.log('Profile ID: ' + profileId);Полный список возвращаемых полей (заявлений) см. в документации OpenID Connect .
Возвращаться
String
— Маркер удостоверения, если он доступен; в противном случае null
.
getInstallationSource()
Возвращает значение перечисления, указывающее, как сценарий был установлен в качестве надстройки для текущего пользователя (например, установил ли его пользователь лично через Интернет-магазин Chrome или администратор домена установил его для всех пользователей).
Возвращаться
InstallationSource
— источник установки.
getOAuthToken()
Получает маркер доступа OAuth 2.0 для действующего пользователя. Если области действия OAuth сценария достаточны для авторизации другого API Google, для которого обычно требуется собственный поток OAuth (например, Google Picker ), сценарии могут обойти второй запрос авторизации, передав вместо этого токен. Срок действия токена истекает через некоторое время (минимум несколько минут); сценарии должны обрабатывать ошибки авторизации и вызывать этот метод для получения нового токена при необходимости.
Токен, возвращаемый этим методом, включает только те области, которые необходимы сценарию в данный момент. Области, которые ранее были авторизованы, но больше не используются сценарием, не включаются в возвращаемый токен. Если требуются дополнительные области действия OAuth сверх того, что требует сам скрипт, их можно указать в файле манифеста скрипта.
Возвращаться
String
— строковое представление токена OAuth 2.0.
getProjectTriggers()
Получает все устанавливаемые триггеры, связанные с текущим проектом и текущим пользователем.
Logger.log('Current project has ' + ScriptApp.getProjectTriggers().length + ' triggers.');
Возвращаться
Trigger[]
— Массив триггеров текущего пользователя, связанных с этим проектом.
Авторизация
Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :
-
https://www.googleapis.com/auth/script.scriptapp
getScriptId()
Получает уникальный идентификатор проекта скрипта. Это предпочтительный метод получения уникального идентификатора проекта скрипта, а не
. Этот идентификатор можно использовать во всех местах, где ранее был предоставлен ключ проекта.getProjectKey()
Возвращаться
String
— идентификатор проекта скрипта.
getService()
Получает объект, используемый для управления публикацией скрипта в виде веб-приложения.
// Get the URL of the published web app. var url = ScriptApp.getService().getUrl();
Возвращаться
Service
— объект, используемый для наблюдения и управления публикацией скрипта в виде веб-приложения.
getUserTriggers(document)
Получает все устанавливаемые триггеры, принадлежащие этому пользователю в данном документе, только для этого скрипта или надстройки. Этот метод нельзя использовать для просмотра триггеров, прикрепленных к другим скриптам.
var doc = DocumentApp.getActiveDocument(); var triggers = ScriptApp.getUserTriggers(doc); // Log the handler function for the first trigger in the array. Logger.log(triggers[0].getHandlerFunction());
Параметры
Имя | Тип | Описание |
---|---|---|
document | Document | Файл Документов Google, который может содержать устанавливаемые триггеры. |
Возвращаться
Trigger[]
— Массив триггеров, принадлежащих этому пользователю в данном документе.
Авторизация
Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :
-
https://www.googleapis.com/auth/script.scriptapp
getUserTriggers(form)
Получает все устанавливаемые триггеры, принадлежащие этому пользователю в заданной форме, только для этого скрипта или надстройки. Этот метод нельзя использовать для просмотра триггеров, прикрепленных к другим скриптам.
var form = FormApp.getActiveForm(); var triggers = ScriptApp.getUserTriggers(form); // Log the trigger source for the first trigger in the array. Logger.log(triggers[0].getTriggerSource());
Параметры
Имя | Тип | Описание |
---|---|---|
form | Form | Файл Google Forms, который может содержать устанавливаемые триггеры. |
Возвращаться
Trigger[]
— Массив триггеров, принадлежащих этому пользователю в заданной форме.
Авторизация
Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :
-
https://www.googleapis.com/auth/script.scriptapp
getUserTriggers(spreadsheet)
Получает все устанавливаемые триггеры, принадлежащие этому пользователю в данной электронной таблице, только для этого скрипта или надстройки. Этот метод нельзя использовать для просмотра триггеров, прикрепленных к другим сценариям.
var ss = SpreadsheetApp.getActiveSpreadsheet(); var triggers = ScriptApp.getUserTriggers(ss); // Log the event type for the first trigger in the array. Logger.log(triggers[0].getEventType());
Параметры
Имя | Тип | Описание |
---|---|---|
spreadsheet | Spreadsheet | Файл Google Sheets, который может содержать устанавливаемые триггеры. |
Возвращаться
Trigger[]
— массив триггеров, принадлежащих этому пользователю в данной электронной таблице.
Авторизация
Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :
-
https://www.googleapis.com/auth/script.scriptapp
invalidateAuth()
Аннулирует авторизацию, которую действующий пользователь должен выполнить для выполнения текущего скрипта. Используется для аннулирования любых разрешений для текущего скрипта. Это особенно полезно для функций, помеченных как одноразовая авторизация. Поскольку функции одноразовой авторизации могут быть вызваны только при первом запуске после того, как скрипт получил авторизацию, если вы хотите выполнить какое-либо действие после этого, вы должны отозвать любую авторизацию, которая была у скрипта, чтобы пользователь мог снова увидеть диалоговое окно авторизации.
ScriptApp.invalidateAuth();
Броски
Error
— когда инвалидация не удалась
newStateToken()
Создает построитель для токена состояния, который можно использовать в API обратного вызова (например, в потоке OAuth).
// Generate a callback URL, given the name of a callback function. The script does not need to // be published as a web app; the /usercallback URL suffix replaces /edit in any script's URL. function getCallbackURL(callbackFunction) { // IMPORTANT: Replace string below with the URL from your script, minus the /edit at the end. var scriptUrl = 'https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz'; var urlSuffix = '/usercallback?state='; var stateToken = ScriptApp.newStateToken() .withMethod(callbackFunction) .withTimeout(120) .createToken(); return scriptUrl + urlSuffix + stateToken; }
В большинстве потоков OAuth2 токен state
передается конечной точке авторизации напрямую (не как часть URL-адреса обратного вызова), а конечная точка авторизации затем передает его как часть URL-адреса обратного вызова.
Например:
- Сценарий перенаправляет пользователя на URL-адрес авторизации OAuth2:
https://accounts.google.com/o/oauth2/auth?state=token_generated_with_this_method&callback_uri=https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback&other_oauth2_parameters
. - Пользователь нажимает кнопку авторизации, и страница авторизации OAuth2 перенаправляет пользователя обратно на
https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback?state=token_generated_with_this_method&other_params_that_include_tokens_or_grants
. - Приведенное выше перенаправление (обратно на
http://script.google.com/...
) вызывает запрос браузера к/usercallback
, который вызывает метод, указанныйStateTokenBuilder.withMethod(method)
.
Возвращаться
StateTokenBuilder
— объект, используемый для продолжения процесса создания токена состояния.
newTrigger(functionName)
Начинает процесс создания устанавливаемого триггера, который при срабатывании вызывает заданную функцию.
// Creates an edit trigger for a spreadsheet identified by ID. ScriptApp.newTrigger('myFunction') .forSpreadsheet('1234567890abcdefghijklmnopqrstuvwxyz_a1b2c3') .onEdit() .create();
Параметры
Имя | Тип | Описание |
---|---|---|
functionName | String | Функция, вызываемая при срабатывании триггера. Вы можете использовать функции из включенных библиотек, таких как Library.libFunction1 . |
Возвращаться
TriggerBuilder
— Объект, используемый для продолжения процесса создания триггера.
Авторизация
Сценарии, использующие этот метод, требуют авторизации в одной или нескольких следующих областях :
-
https://www.googleapis.com/auth/script.scriptapp