Запускает функцию в проекте Apps Script. Проект сценария должен быть развернут для использования с Apps Script API, а вызывающее приложение должно использовать тот же проект Cloud Platform.
Этот метод требует авторизации с помощью токена OAuth 2.0, который включает хотя бы одну из областей, перечисленных в разделе «Авторизация» ; проекты сценариев, не требующие авторизации, не могут быть выполнены через этот API. Чтобы найти правильные области для включения в токен аутентификации, откройте страницу «Обзор проекта сценария» и прокрутите вниз до «Области действия OAuth проекта».
Ошибка 403, PERMISSION_DENIED: The caller does not have permission указывает на то, что проект Cloud Platform, используемый для авторизации запроса, не совпадает с проектом, используемым сценарием.
HTTP-запрос
POST https://script.googleapis.com/v1/scripts/{scriptId}:run
URL-адрес использует синтаксис транскодирования gRPC .
Параметры пути
| Параметры | |
|---|---|
scriptId | Идентификатор сценария, который будет выполнен. Найдите идентификатор сценария на странице настроек проекта в разделе «Идентификаторы». |
Тело запроса
Тело запроса содержит данные следующей структуры:
| JSON-представление |
|---|
{ "function": string, "parameters": [ value ], "sessionState": string, "devMode": boolean } |
| Поля | |
|---|---|
function | Имя функции, которую нужно выполнить в данном скрипте. Имя не содержит скобок и параметров. Он может ссылаться на функцию во включенной библиотеке, например |
parameters[] | Параметры, которые будут переданы в выполняемую функцию. Тип объекта для каждого параметра должен соответствовать ожидаемому типу в Apps Script. Параметры не могут быть типами объектов, специфичными для Apps Script (например, |
sessionState | Устарело . Только для использования с надстройками Android. Идентификатор, представляющий текущий сеанс пользователя в приложении Android для Документов или Таблиц Google, включенный в качестве дополнительных данных в намерение , запускающее надстройку. Когда надстройка Android запускается с состоянием сеанса, она получает привилегии привязанного сценария, то есть может получать доступ к такой информации, как текущая позиция курсора пользователя (в Документах) или выбранная ячейка (в Таблицах). Чтобы получить состояние, вызовите |
devMode | Если |
Тело ответа
В случае успеха тело ответа содержит данные следующей структуры:
Представление выполнения функции Apps Script, начатой с помощью run . Ответ на выполнение не приходит до тех пор, пока функция не завершит выполнение. Максимальное время выполнения указано в руководстве по квотам Apps Script .
После начала выполнения оно может иметь один из четырех результатов:
- Если функция скрипта завершает работу успешно, поле
responseсодержит объектExecutionResponseс возвращаемым значением функции в полеresultобъекта. - Если функция скрипта (или сам скрипт Apps) выдает исключение, поле
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 завершается успешно, но функция скрипта (или сам скрипт Apps) выдает исключение, поле error тела ответа содержит этот объект Status .
| JSON-представление |
|---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |
| Поля | |
|---|---|
code | Код состояния. Для этого API это значение либо:
|
message | Сообщение об ошибке для разработчика на английском языке. Любое сообщение об ошибке, обращенное к пользователю, локализуется и отправляется в поле |
details[] | Массив, содержащий один объект Объект, содержащий поля произвольного типа. Дополнительное поле |