Uruchamia funkcję w projekcie Apps Script. Aby można było używać interfejsu Apps Script API, projekt skryptu musi być wdrożony, a aplikacja wywołująca musi współdzielić ten sam projekt Cloud Platform.
Ta metoda wymaga autoryzacji przy użyciu tokena OAuth 2.0 zawierającego co najmniej jeden z zakresów wymienionych w sekcji Autoryzacja. projektów skryptów, które nie wymagają autoryzacji, nie można uruchamiać za pomocą tego interfejsu API. Aby znaleźć odpowiednie zakresy do uwzględnienia w tokenie uwierzytelniania, otwórz stronę Przegląd projektu skryptu i przewiń w dół do sekcji „Zakresy protokołu OAuth projektu”.
Błąd 403, PERMISSION_DENIED: The caller does not have permission oznacza, że projekt Cloud Platform użyty do autoryzacji żądania różni się od projektu używanego przez skrypt.
Żądanie HTTP
POST https://script.googleapis.com/v1/scripts/{scriptId}:run
Adres URL używa składni transkodowania gRPC.
Parametry ścieżki
| Parametry | |
|---|---|
scriptId |
Identyfikator skryptu, który ma zostać wykonany. Identyfikator skryptu znajdziesz na stronie Ustawienia projektu w sekcji „Identyfikatory”. |
Treść żądania
Treść żądania zawiera dane o następującej strukturze:
| Zapis JSON |
|---|
{ "function": string, "parameters": [ value ], "sessionState": string, "devMode": boolean } |
| Pola | |
|---|---|
function |
Nazwa funkcji, która ma zostać wykonana w danym skrypcie. Nazwa nie zawiera nawiasów ani parametrów. Może odwoływać się do funkcji w uwzględnionej bibliotece, np. |
parameters[] |
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 typowych dla Apps Script (takich jak |
sessionState |
Wycofano. Do użytku tylko z dodatkami na Androida. Identyfikator reprezentujący bieżącą sesję użytkownika Dokumentów lub Arkuszy Google w aplikacji na Androida, który jest uwzględniony jako dodatkowe dane w intencji uruchamiającej dodatek. Gdy dodatek na Androida jest uruchamiany w stanie sesji, uzyskuje uprawnienia do skryptu powiązanego – to znaczy, że może uzyskać 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 |
devMode |
Jeśli właścicielem skryptu jest |
Treść odpowiedzi
W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:
Prezentacja wykonania funkcji Apps Script rozpoczętej przez run. Odpowiedź wykonania nie przychodzi, dopóki funkcja nie zakończy wykonywania. Maksymalne środowisko wykonawcze znajdziesz w przewodniku po limitach Apps Script.
Po rozpoczęciu może to przynieść jeden z 4 wyników:
- Jeśli funkcja skryptu zwraca się prawidłowo, pole
responsezawiera obiektExecutionResponsez wartością zwrotną funkcji w poluresultobiektu. - Jeśli funkcja skryptu (lub sama Apps Script) zgłosi wyjątek, pole
errorzawiera obiektStatus. PoledetailsobiektuStatuszawiera tablicę z pojedynczym obiektemExecutionError, który dostarcza informacji o charakterze błędu. - Jeśli wykonanie nie zostało jeszcze ukończone, pole
donezawiera wartośćfalse, a polaresponseierrornie są obecne. - Jeśli samo wywołanie
runzakończy się niepowodzeniem (na przykład z powodu nieprawidłowego formatu żądania lub błędu autoryzacji), metoda zwróci kod odpowiedzi HTTP z zakresu 4XX z innym formatem treści odpowiedzi. Biblioteki klienta automatycznie konwertują odpowiedź 4XX na klasę wyjątku.
| Zapis JSON |
|---|
{ "done": boolean, // Union field |
| Pola | |
|---|---|
done |
To pole informuje, czy wykonywanie skryptu zostało zakończone. Ukończone wykonanie ma wypełnione pole |
Pole sumy result. Wynik operacji, którym może być error lub prawidłowy response. Jeśli done == false, nie ustawiono error ani response. Jeśli done == true, może być ustawione dokładnie jedna z tych wartości: error lub response. Niektóre usługi mogą nie dawać oczekiwanych rezultatów. result może mieć tylko jedną z tych wartości: |
|
error |
Jeśli wywołanie |
response |
Jeśli funkcja skryptu zostanie zwrócona, to pole będzie zawierać obiekt Obiekt zawierający pola dowolnego typu. Dodatkowe pole |
Zakresy autoryzacji
Wymaga jednego z tych zakresów protokołu OAuth:
https://apps-apis.google.com/a/feedshttps://apps-apis.google.com/a/feeds/alias/https://apps-apis.google.com/a/feeds/groups/https://mail.google.com/https://sites.google.com/feedshttps://www.google.com/calendar/feedshttps://www.google.com/m8/feedshttps://www.googleapis.com/auth/admin.directory.grouphttps://www.googleapis.com/auth/admin.directory.userhttps://www.googleapis.com/auth/documentshttps://www.googleapis.com/auth/documents.currentonlyhttps://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/dynamiccreativeshttps://www.googleapis.com/auth/formshttps://www.googleapis.com/auth/forms.currentonlyhttps://www.googleapis.com/auth/groupshttps://www.googleapis.com/auth/script.cpanelhttps://www.googleapis.com/auth/script.external_requesthttps://www.googleapis.com/auth/script.scriptapphttps://www.googleapis.com/auth/script.send_mailhttps://www.googleapis.com/auth/script.storagehttps://www.googleapis.com/auth/script.webapp.deployhttps://www.googleapis.com/auth/spreadsheetshttps://www.googleapis.com/auth/spreadsheets.currentonlyhttps://www.googleapis.com/auth/sqlservicehttps://www.googleapis.com/auth/userinfo.email
Więcej informacji znajdziesz w artykule Omówienie protokołu OAuth 2.0.
Stan
Jeśli wywołanie run zakończy się powodzeniem, ale funkcja skryptu (lub sama aplikacja 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 |
Kod stanu. W przypadku tego interfejsu API ta wartość:
|
message |
komunikat o błędzie widoczny dla dewelopera (w języku angielskim). Każdy komunikat o błędzie widoczny dla użytkowników jest lokalizowany i wysyłany w polu |
details[] |
Tablica z pojedynczym obiektem Obiekt zawierający pola dowolnego typu. Dodatkowe pole |