Method: scripts.run

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

Запускает функцию в проекте скрипта приложений. Проект скрипта должен быть развернут для использования с 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

string

Идентификатор сценария, который необходимо выполнить. Найдите идентификатор скрипта на странице настроек проекта в разделе «ID».

Тело запроса

Тело запроса содержит данные со следующей структурой:

Представление JSON
{
  "function": string,
  "parameters": [
    value
  ],
  "sessionState": string,
  "devMode": boolean
}
Поля
function

string

Имя функции для выполнения в данном скрипте. Имя не содержит круглых скобок или параметров. Он может ссылаться на функцию во включенной библиотеке, такой как Library.libFunction1 .

parameters[]

value ( Value format)

Параметры, которые необходимо передать выполняемой функции. Тип объекта для каждого параметра должен соответствовать ожидаемому типу в Apps Script. Параметры не могут быть типами объектов, специфичными для скрипта приложений (такими как Document или Calendar ); они могут быть только примитивными типами, такими как string , number , array , object или boolean . Необязательный.

sessionState

string

Устаревший . Только для использования с надстройками Android. Идентификатор, представляющий текущий сеанс пользователя в приложении Android для Google Docs или Sheets, включенный в качестве дополнительных данных в Intent , запускающий надстройку. Когда надстройка Android запускается с состоянием сеанса, она получает привилегии связанного скрипта, то есть может получать доступ к такой информации, как текущая позиция курсора пользователя (в Документах) или выбранная ячейка (в Таблицах). Чтобы получить состояние, вызовите Intent.getStringExtra("com.google.android.apps.docs.addons.SessionState") . Необязательный.

devMode

boolean

Если задано значение true и пользователь является владельцем сценария, сценарий запускается в самой последней сохраненной версии, а не в версии, развернутой для использования с Apps Script API. Необязательный; по умолчанию false .

Тело ответа

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

Представление выполнения функции скрипта приложений, запущенного с помощью run . Ответ на выполнение не приходит до тех пор, пока функция не завершит выполнение. Максимальное время выполнения указано в руководстве по квотам скриптов приложений .

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

  • Если функция скрипта завершается успешно, поле response содержит объект ExecutionResponse с возвращаемым значением функции в поле result объекта.
  • Если функция сценария (или сам сценарий приложений) выдает исключение, поле error содержит объект Status . Поле details объекта Status содержит массив с одним объектом ExecutionError , который предоставляет информацию о характере ошибки.
  • Если выполнение еще не завершено, поле done имеет значение false , а поля response и error отсутствуют.
  • Если сам вызов run завершается сбоем (например, из-за неверно сформированного запроса или ошибки авторизации), метод возвращает код ответа HTTP в диапазоне 4XX с другим форматом тела ответа. Клиентские библиотеки автоматически преобразуют ответ 4XX в класс исключения.

Представление JSON
{
  "done": boolean,

  // Union field result can be only one of the following:
  "error": {
    object (Status)
  },
  "response": {
    "@type": string,
    field1: ...,
    ...
  }
  // End of list of possible types for union field result.
}
Поля
done

boolean

Это поле указывает, завершено ли выполнение скрипта. Завершенное выполнение имеет заполненное поле response , содержащее ExecutionResponse от выполненной функции.

result поля объединения. Результат операции, который может быть как error , так и допустимым response . Если done == false , ни error , ни response не устанавливаются. Если done == true , может быть установлена ​​только одна error или response . Некоторые сервисы могут не дать результата. result может быть только одним из следующих:
error

object ( Status )

Если вызов run успешно, но функция скрипта (или сам скрипт приложений) выдает исключение, это поле содержит объект Status . Поле details объекта Status содержит массив с одним объектом ExecutionError , который предоставляет информацию о характере ошибки.

response

object

Если функция сценария возвращается успешно, это поле содержит объект ExecutionResponse с возвращаемым значением функции.

Объект, содержащий поля произвольного типа. Дополнительное поле "@type" содержит URI, идентифицирующий тип. Пример: { "id": 1234, "@type": "types.example.com/standard/id" } .

Области авторизации

Требуется одна из следующих областей действия 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

integer

Код состояния. Для этого API это значение:

  • 10, что указывает на ошибку SCRIPT_TIMEOUT ,
  • 3, что указывает на ошибку INVALID_ARGUMENT , или
  • 1, что указывает на CANCELLED исполнение.

message

string

Сообщение об ошибке для разработчика на английском языке. Любое сообщение об ошибке, с которым сталкивается пользователь, локализуется и отправляется в поле details или локализуется клиентом.

details[]

object

Массив, содержащий один объект ExecutionError , предоставляющий информацию о характере ошибки.

Объект, содержащий поля произвольного типа. Дополнительное поле "@type" содержит URI, идентифицирующий тип. Пример: { "id": 1234, "@type": "types.example.com/standard/id" } .