Method: scripts.run

Uruchamia funkcję w projekcie Apps Script. Projekt skryptu musi być wdrożony do użytku z interfejsem Apps Script API, a aplikacja wywołująca musi korzystać z tego samego projektu Cloud Platform.

Ta metoda wymaga autoryzacji za pomocą tokena OAuth 2.0, który zawiera co najmniej jeden z zakresów wymienionych w sekcji Autoryzacja. Nie można wykonywać za pomocą tego interfejsu API projektów skryptów, które nie wymagają autoryzacji. Aby znaleźć prawidłowe zakresy do uwzględnienia w tokenie uwierzytelniania, otwórz stronę Przegląd projektu skryptu i przewiń w dół do sekcji „Zakresy OAuth projektu”.

Błąd 403, PERMISSION_DENIED: The caller does not have permission oznacza, że projekt Cloud Platform użyty do autoryzacji żądania nie jest taki sam jak projekt używany przez skrypt.

Żądanie HTTP

POST https://script.googleapis.com/v1/scripts/{deploymentId}:run

Adres URL używa składni transkodowania gRPC.

Parametry ścieżki

Parametry
deploymentId

string

Identyfikator wdrożenia pliku wykonywalnego interfejsu API. Znajdź identyfikator wdrożenia w edytorze skryptów w sekcji Wdróż > Zarządzaj wdrożeniami.

Treść żądania

Treść żądania zawiera dane o następującej strukturze:

Zapis JSON
{
  "function": string,
  "parameters": [
    value
  ],
  "sessionState": string,
  "devMode": boolean
}
Pola
function

string

Nazwa funkcji do wykonania w danym skrypcie. Nazwa nie zawiera nawiasów ani parametrów. Może odwoływać się do funkcji z dołączonej biblioteki, np. Library.libFunction1.

parameters[]

value (Value format)

Parametry, które mają zostać przekazane do wykonywanej funkcji. Typ obiektu każdego parametru powinien być zgodny z oczekiwanym typem w Apps Script. Parametry nie mogą być typami obiektów specyficznymi dla Apps Script (np. Document lub Calendar); mogą być tylko typami prostymi, takimi jak string, number, array, object lub boolean. Opcjonalnie:

sessionState

string

Wycofano. Do użytku tylko z dodatkami do Androida. Identyfikator reprezentujący bieżącą sesję użytkownika w aplikacji na Androida Dokumenty lub Arkusze Google, dołączony jako dodatkowe dane w intencji, która uruchamia dodatek. Gdy dodatek do Androida jest uruchamiany ze stanem sesji, uzyskuje uprawnienia powiązanego skryptu, czyli może uzyskiwać dostęp do informacji takich jak bieżąca pozycja kursora użytkownika (w Dokumentach) lub wybrana komórka (w Arkuszach). Aby pobrać stan, wywołaj Intent.getStringExtra("com.google.android.apps.docs.addons.SessionState"). Opcjonalnie:

devMode

boolean

Jeśli true, a użytkownik jest właścicielem skryptu, skrypt jest uruchamiany w najnowszej zapisanej wersji, a nie w wersji wdrożonej do użycia z interfejsem Apps Script API. Opcjonalne; wartość domyślna to false.

Treść odpowiedzi

W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:

Reprezentacja wykonania funkcji Apps Script rozpoczętego za pomocą run. Odpowiedź na wykonanie nie dotrze, dopóki funkcja nie zakończy wykonywania. Maksymalny czas wykonania jest podany w przewodniku po limitach Apps Script.

Po rozpoczęciu wykonania może ono mieć jeden z 4 wyników:

  • Jeśli funkcja skryptu zwróci wartość, pole response zawiera obiekt ExecutionResponse z wartością zwracaną przez funkcję w polu result obiektu.
  • Jeśli funkcja skryptu (lub sam Apps Script) zgłosi wyjątek, pole error będzie zawierać obiekt Status. Pole details obiektu Status zawiera tablicę z jednym obiektem ExecutionError, który zawiera informacje o charakterze błędu.
  • Jeśli wykonanie jeszcze się nie zakończyło, pole done ma wartość false, a pola responseerror nie są obecne.
  • Jeśli samo wywołanie run się nie powiedzie (np. z powodu nieprawidłowo sformatowanego żądania lub błędu autoryzacji), metoda zwraca kod odpowiedzi HTTP z zakresu 4XX z innym formatem treści odpowiedzi. Biblioteki klienta automatycznie przekształcają odpowiedź 4XX w klasę wyjątku.

Zapis 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.
}
Pola
done

boolean

To pole wskazuje, czy wykonanie skryptu zostało zakończone. Ukończone wykonanie ma wypełnione pole response zawierające ExecutionResponse z wykonanej funkcji.

Pole zbiorcze result. Wynik operacji, który może być wartością error lub prawidłową wartością response. Jeśli done == false, nie ustawiono ani error, ani response. Jeśli done == true, można ustawić tylko jedną z wartości error lub response. Niektóre usługi mogą nie zwracać wyniku. result może mieć tylko jedną z tych wartości:
error

object (Status)

Jeśli wywołanie run zakończy się powodzeniem, ale funkcja skryptu (lub sam Apps Script) zgłosi wyjątek, to pole zawiera obiekt Status. Pole details obiektu Status zawiera tablicę z jednym obiektem ExecutionError, który zawiera informacje o charakterze błędu.

response

object

Jeśli funkcja skryptu zwróci wartość, to pole zawiera obiekt ExecutionResponse z wartością zwracaną przez funkcję.

Obiekt zawierający pola dowolnego typu. Dodatkowe pole "@type" zawiera identyfikator URI określający typ. Przykład: { "id": 1234, "@type": "types.example.com/standard/id" }

Zakresy autoryzacji

Wymaga jednego z tych zakresów 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

Więcej informacji znajdziesz w omówieniu OAuth 2.0.

Stan

Jeśli wywołanie run się powiedzie, ale funkcja skryptu (lub sam Apps Script) zgłosi wyjątek, pole error w treści odpowiedzi będzie zawierać ten obiekt Status.

Zapis JSON
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
Pola
code

integer

Kod stanu. W przypadku tego interfejsu API ta wartość:

  • 10, co oznacza SCRIPT_TIMEOUT błąd.
  • 3, co oznacza INVALID_ARGUMENT błąd, lub
  • 1, co oznacza CANCELLED wykonanie.

message

string

Komunikat o błędzie widoczny dla programisty, który jest w języku angielskim. Wszelkie komunikaty o błędach dla użytkowników są zlokalizowane i wysyłane w polu details lub zlokalizowane przez klienta.

details[]

object

Tablica zawierająca pojedynczy obiekt ExecutionError, który zawiera informacje o charakterze błędu.

Obiekt zawierający pola dowolnego typu. Dodatkowe pole "@type" zawiera identyfikator URI określający typ. Przykład: { "id": 1234, "@type": "types.example.com/standard/id" }