Запускает функцию в проекте скрипта приложений. Проект скрипта должен быть развернут для использования с Apps Script API, а вызывающее приложение должно использовать один и тот же проект Cloud Platform.
Для этого метода требуется авторизация с помощью токена OAuth 2.0, который включает хотя бы одну из областей, перечисленных в разделе « Авторизация ». проекты сценариев, не требующие авторизации, не могут выполняться через этот API. Чтобы найти правильные области для включения в токен проверки подлинности, откройте страницу обзора проекта скрипта и прокрутите вниз до «Области проекта OAuth».
Ошибка 403, PERMISSION_DENIED: The caller does not have permission
, указывает на то, что проект облачной платформы, используемый для авторизации запроса, не совпадает с проектом, используемым сценарием.
HTTP-запрос
POST https://script.googleapis.com/v1/scripts/{scriptId}:run
URL-адрес использует синтаксис транскодирования gRPC .
Параметры пути
Параметры | |
---|---|
scriptId | Идентификатор сценария, который необходимо выполнить. Найдите идентификатор скрипта на странице настроек проекта в разделе «ID». |
Тело запроса
Тело запроса содержит данные со следующей структурой:
Представление JSON |
---|
{ "function": string, "parameters": [ value ], "sessionState": string, "devMode": boolean } |
Поля | |
---|---|
function | Имя функции для выполнения в данном скрипте. Имя не содержит круглых скобок или параметров. Он может ссылаться на функцию во включенной библиотеке, такой как |
parameters[] | Параметры, которые необходимо передать выполняемой функции. Тип объекта для каждого параметра должен соответствовать ожидаемому типу в Apps Script. Параметры не могут быть типами объектов, специфичными для скрипта приложений (такими как |
sessionState | Устаревший . Только для использования с надстройками Android. Идентификатор, представляющий текущий сеанс пользователя в приложении Android для Google Docs или Sheets, включенный в качестве дополнительных данных в Intent , запускающий надстройку. Когда надстройка Android запускается с состоянием сеанса, она получает привилегии связанного скрипта, то есть может получать доступ к такой информации, как текущая позиция курсора пользователя (в Документах) или выбранная ячейка (в Таблицах). Чтобы получить состояние, вызовите |
devMode | Если задано значение |
Тело ответа
В случае успеха тело ответа содержит данные со следующей структурой:
Представление выполнения функции скрипта приложений, запущенного с помощью run
. Ответ на выполнение не приходит до тех пор, пока функция не завершит выполнение. Максимальное время выполнения указано в руководстве по квотам скриптов приложений .
После начала выполнения оно может иметь один из четырех результатов:
- Если функция скрипта завершается успешно, поле
response
содержит объектExecutionResponse
с возвращаемым значением функции в полеresult
объекта. - Если функция сценария (или сам сценарий приложений) выдает исключение, поле
error
содержит объектStatus
. Полеdetails
объектаStatus
содержит массив с одним объектомExecutionError
, который предоставляет информацию о характере ошибки. - Если выполнение еще не завершено, поле
done
имеет значениеfalse
, а поляresponse
иerror
отсутствуют. - Если сам вызов
run
завершается сбоем (например, из-за неверно сформированного запроса или ошибки авторизации), метод возвращает код ответа HTTP в диапазоне 4XX с другим форматом тела ответа. Клиентские библиотеки автоматически преобразуют ответ 4XX в класс исключения.
Представление JSON |
---|
{ "done": boolean, // Union field |
Поля | |
---|---|
done | Это поле указывает, завершено ли выполнение скрипта. Завершенное выполнение имеет заполненное поле |
result поля объединения. Результат операции, который может быть как error , так и допустимым response . Если done == false , ни error , ни response не устанавливаются. Если done == true , может быть установлена только одна error или response . Некоторые сервисы могут не дать результата. result может быть только одним из следующих: | |
error | Если вызов |
response | Если функция сценария возвращается успешно, это поле содержит объект Объект, содержащий поля произвольного типа. Дополнительное поле |
Области авторизации
Требуется одна из следующих областей действия OAuth:
-
https://apps-apis.google.com/a/feeds
-
https://apps-apis.google.com/a/feeds/alias/
-
https://apps-apis.google.com/a/feeds/groups/
-
https://mail.google.com/
-
https://sites.google.com/feeds
-
https://www.google.com/calendar/feeds
-
https://www.google.com/m8/feeds
-
https://www.googleapis.com/auth/admin.directory.group
-
https://www.googleapis.com/auth/admin.directory.user
-
https://www.googleapis.com/auth/documents
-
https://www.googleapis.com/auth/documents.currentonly
-
https://www.googleapis.com/auth/drive
-
https://www.googleapis.com/auth/dynamiccreatives
-
https://www.googleapis.com/auth/forms
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/groups
-
https://www.googleapis.com/auth/script.cpanel
-
https://www.googleapis.com/auth/script.external_request
-
https://www.googleapis.com/auth/script.scriptapp
-
https://www.googleapis.com/auth/script.send_mail
-
https://www.googleapis.com/auth/script.storage
-
https://www.googleapis.com/auth/script.webapp.deploy
-
https://www.googleapis.com/auth/spreadsheets
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/sqlservice
-
https://www.googleapis.com/auth/userinfo.email
Дополнительные сведения см. в обзоре OAuth 2.0 .
Положение дел
Если вызов run
завершается успешно, но функция скрипта (или сам скрипт приложений) выдает исключение, поле error
тела ответа содержит этот объект Status
.
Представление JSON |
---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |
Поля | |
---|---|
code | Код состояния. Для этого API это значение:
|
message | Сообщение об ошибке для разработчика на английском языке. Любое сообщение об ошибке, с которым сталкивается пользователь, локализуется и отправляется в поле |
details[] | Массив, содержащий один объект Объект, содержащий поля произвольного типа. Дополнительное поле |