Dostęp do publikowania skryptów i aktywatorów oraz możliwość manipulowania nimi. Ta klasa umożliwia użytkownikom tworzenie wywołań skryptu i kontrolowanie publikowania skryptu jako usługi.
Właściwości
Właściwość | Typ | Opis |
---|---|---|
Auth | Auth | Wyliczenie, które określa kategorie autoryzowanych usług, które Apps Script może wykonywać za pomocą funkcji wywoływanej przez wyzwalacz. |
Authorization | Authorization | Wyliczenie określające stan autoryzacji skryptu. |
Event | Event | Wyliczenie oznaczające typ wywołanego zdarzenia. |
Installation | Installation | Wyliczenie określające sposób zainstalowania skryptu u użytkownika jako dodatku. |
Trigger | Trigger | Wyliczenie oznaczające źródło zdarzenia, które powoduje uruchomienie reguły. |
Week | Weekday | Wyliczenie reprezentujące dni tygodnia. |
Metody
Metoda | Zwracany typ | Krótki opis |
---|---|---|
delete | void | Usuwa podany wyzwalacz, aby nie był już uruchamiany. |
get | Authorization | Zwraca obiekt, który sprawdza, czy użytkownik przyznał autoryzację dla wszystkich wymagań skryptu. |
get | Authorization | Pobiera obiekt, który sprawdza, czy użytkownik przyznał autoryzację w przypadku żądanych zakresów. |
get | String | Pobiera token tożsamości Openopenid . |
get | Installation | Zwraca wartość wyliczeniową, która wskazuje, w jaki sposób skrypt został zainstalowany jako dodatek dla bieżącego użytkownika (np. czy użytkownik zainstalował go osobiście w Chrome Web Store, czy administrator domeny zainstalował go dla wszystkich użytkowników). |
get | String | Pobiera token dostępu OAuth 2.0 dla użytkownika. |
get | Trigger[] | Pobiera wszystkie wyzwalacze, które można zainstalować, powiązane z bieżącym projektem i bieżącym użytkownikiem. |
get | String | Pobiera unikalny identyfikator projektu skryptu. |
get | Service | Zwraca obiekt używany do kontrolowania publikowania skryptu jako aplikacji internetowej. |
get | Trigger[] | Pobiera wszystkie wyzwalacze, które można zainstalować i których właścicielem jest ten użytkownik w danym dokumencie, tylko dla tego skryptu lub dodatku. |
get | Trigger[] | Pobiera wszystkie instalowane wyzwalacze należące do tego użytkownika w danym formularzu, tylko dla tego skryptu lub dodatku. |
get | Trigger[] | Pobiera wszystkie instalowane wyzwalacze należące do tego użytkownika w danym arkuszu kalkulacyjnym, tylko dla tego skryptu lub dodatku. |
invalidate | void | Unieważnia autoryzację, którą użytkownik ma do wykonania bieżącego skryptu. |
new | State | Tworzy narzędzie do tworzenia tokena stanu, którego można używać w interfejsie API wywołania zwrotnego (np. w przepływie OAuth). |
new | Trigger | Rozpoczyna proces tworzenia aktywatora, który można zainstalować i który po uruchomieniu wywołuje daną funkcję. |
require | void | Sprawdza, czy użytkownik wyraził zgodę na wszystkie zakresy wymagane przez skrypt. |
require | void | Sprawdza, czy użytkownik wyraził zgodę na żądane zakresy. |
Szczegółowa dokumentacja
delete Trigger(trigger)
Usuwa podany wyzwalacz, aby nie był już uruchamiany.
// Deletes all triggers in the current project. const triggers = ScriptApp.getProjectTriggers(); for (let i = 0; i < triggers.length; i++) { ScriptApp.deleteTrigger(triggers[i]); }
Parametry
Nazwa | Typ | Opis |
---|---|---|
trigger | Trigger | Aktywator do usunięcia. |
Autoryzacja
Skrypty korzystające z tej metody wymagają autoryzacji z użyciem co najmniej jednego z tych zakresów:
-
https://www.googleapis.com/auth/script.scriptapp
get Authorization Info(authMode)
Zwraca obiekt, który sprawdza, czy użytkownik przyznał autoryzację dla wszystkich wymagań skryptu. Obiekt zawiera też adres URL autoryzacji, który umożliwia użytkownikom przyznanie tych uprawnień, jeśli któreś z wymagań skryptu nie są autoryzowane.
Niektóre skrypty mogą być uruchamiane bez zgody użytkownika na wszystkie wymagane zakresy używane przez skrypt. Informacje w tym obiekcie umożliwiają kontrolowanie dostępu do sekcji kodu, które wymagają określonych zakresów, oraz żądanie autoryzacji tych zakresów w przypadku kolejnych wykonań.
const authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL); const status = authInfo.getAuthorizationStatus(); const url = authInfo.getAuthorizationUrl();
Parametry
Nazwa | Typ | Opis |
---|---|---|
auth | Auth | Tryb autoryzacji, dla którego wymagane są informacje o autoryzacji. W prawie wszystkich przypadkach wartość auth powinna wynosić Script , ponieważ żaden inny tryb autoryzacji nie wymaga od użytkowników przyznania autoryzacji. |
Powrót
Authorization
– obiekt, który może zawierać informacje o stanie autoryzacji użytkownika.
get Authorization Info(authMode, oAuthScopes)
Pobiera obiekt, który sprawdza, czy użytkownik przyznał autoryzację w przypadku żądanych zakresów. Obiekt zawiera też adres URL autoryzacji, który umożliwia użytkownikom przyznanie tych uprawnień, jeśli którykolwiek z żądanych zakresów nie jest autoryzowany.
Niektóre skrypty mogą być uruchamiane bez zgody użytkownika na wszystkie wymagane zakresy używane przez skrypt. Informacje w tym obiekcie umożliwiają kontrolowanie dostępu do sekcji kodu, które wymagają określonych zakresów, oraz żądanie autoryzacji tych zakresów w przypadku kolejnych wykonań. Zakresy, które są nieprawidłowe lub nie są wymagane przez skrypt, powodują błąd.
const authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL, [ 'https://www.googleapis.com/auth/documents', 'https://www.googleapis.com/auth/presentations', ]); const status = authInfo.getAuthorizationStatus(); const url = authInfo.getAuthorizationUrl();
Parametry
Nazwa | Typ | Opis |
---|---|---|
auth | Auth | Tryb autoryzacji, dla którego wymagane są informacje o autoryzacji. W prawie wszystkich przypadkach wartość parametru auth powinna wynosić Script , ponieważ żaden inny tryb autoryzacji nie wymaga od użytkowników przyznania autoryzacji. |
oAuthScopes | String[] | Zakresy protokołu OAuth, dla których wymagane są informacje o autoryzacji. |
Powrót
Authorization
– obiekt, który zawiera informacje o stanie autoryzacji użytkownika i adres URL autoryzacji w przypadku braku niektórych zgód.
get Identity Token()
Pobiera token tożsamości Openopenid
. Ten zakres nie jest domyślnie uwzględniony i musisz go dodać jako jawny zakres w pliku manifestu, aby o niego poprosić. Aby zwrócić w tokenie dodatkowe informacje o użytkowniku, uwzględnij zakresy https://www.googleapis.com/auth/userinfo.email
lub https://www.googleapis.com/auth/userinfo.profile
.
Zwrócony token identyfikatora to zakodowany token sieciowy JSON (JWT), który należy zdekodować, aby wyodrębnić z niego informacje. Poniższy przykład pokazuje, jak zdekodować token i wyodrębnić identyfikator profilu Google użytkownika.
const idToken = ScriptApp.getIdentityToken(); const body = idToken.split('.')[1]; const decoded = Utilities .newBlob( Utilities.base64Decode(body), ) .getDataAsString(); const payload = JSON.parse(decoded); Logger.log(`Profile ID: ${payload.sub}`);
Powrót
String
– token tożsamości, jeśli jest dostępny; w przeciwnym razie null
.
get Installation Source()
Zwraca wartość wyliczeniową, która wskazuje, w jaki sposób skrypt został zainstalowany jako dodatek dla bieżącego użytkownika (np. czy użytkownik zainstalował go osobiście w Chrome Web Store, czy administrator domeny zainstalował go dla wszystkich użytkowników).
Powrót
Installation
– źródło instalacji.
get OAuth Token()
Pobiera token dostępu OAuth 2.0 dla użytkownika. Jeśli zakresy OAuth skryptu są wystarczające do autoryzacji innego interfejsu API Google, który zwykle wymaga własnego procesu OAuth (np. Google Picker), skrypty mogą pominąć drugi monit o autoryzację, przekazując zamiast niego ten token. Token wygasa po pewnym czasie (co najmniej po kilku minutach). Skrypty powinny obsługiwać błędy autoryzacji i w razie potrzeby wywoływać tę metodę, aby uzyskać nowy token.
Token zwracany przez tę metodę zawiera tylko zakresy, których skrypt obecnie potrzebuje. Zakresy, które były wcześniej autoryzowane, ale nie są już używane przez skrypt, nie są uwzględniane w zwróconym tokenie. Jeśli potrzebne są dodatkowe zakresy OAuth poza tymi, których wymaga sam skrypt, można je określić w pliku manifestu skryptu.
Powrót
String
– ciąg znaków reprezentujący token OAuth 2.0.
get Project Triggers()
Pobiera wszystkie wyzwalacze, które można zainstalować, powiązane z bieżącym projektem i bieżącym użytkownikiem.
Logger.log( `Current project has ${ScriptApp.getProjectTriggers().length} triggers.`, );
Powrót
Trigger[]
– tablica wyzwalaczy bieżącego użytkownika powiązanych z tym projektem.
Autoryzacja
Skrypty korzystające z tej metody wymagają autoryzacji z użyciem co najmniej jednego z tych zakresów:
-
https://www.googleapis.com/auth/script.scriptapp
get Script Id()
Pobiera unikalny identyfikator projektu skryptu. Jest to preferowana metoda uzyskiwania unikalnego identyfikatora projektu skryptu w porównaniu z
. Ten identyfikator można używać we wszystkich miejscach, w których wcześniej podawano klucz projektu.get
Powrót
String
– identyfikator projektu skryptu.
get Service()
Zwraca obiekt używany do kontrolowania publikowania skryptu jako aplikacji internetowej.
// Get the URL of the published web app. const url = ScriptApp.getService().getUrl();
Powrót
Service
– obiekt używany do obserwowania i kontrolowania publikowania skryptu jako aplikacji internetowej.
get User Triggers(document)
Pobiera wszystkie wyzwalacze, które można zainstalować i których właścicielem jest ten użytkownik w danym dokumencie, tylko dla tego skryptu lub dodatku. Nie można jej użyć do wyświetlania wyzwalaczy dołączonych do innych skryptów.
const doc = DocumentApp.getActiveDocument(); const triggers = ScriptApp.getUserTriggers(doc); // Log the handler function for the first trigger in the array. Logger.log(triggers[0].getHandlerFunction());
Parametry
Nazwa | Typ | Opis |
---|---|---|
document | Document | Plik Dokumentów Google, który może zawierać wywoływacze instalowane. |
Powrót
Trigger[]
– tablica wyzwalaczy należących do tego użytkownika w danym dokumencie.
Autoryzacja
Skrypty korzystające z tej metody wymagają autoryzacji z użyciem co najmniej jednego z tych zakresów:
-
https://www.googleapis.com/auth/script.scriptapp
get User Triggers(form)
Pobiera wszystkie instalowane wyzwalacze należące do tego użytkownika w danym formularzu, tylko dla tego skryptu lub dodatku. Nie można jej użyć do wyświetlania wyzwalaczy dołączonych do innych skryptów.
const form = FormApp.getActiveForm(); const triggers = ScriptApp.getUserTriggers(form); // Log the trigger source for the first trigger in the array. Logger.log(triggers[0].getTriggerSource());
Parametry
Nazwa | Typ | Opis |
---|---|---|
form | Form | Plik Formularzy Google, który może zawierać wywoływacze instalowane. |
Powrót
Trigger[]
– tablica wyzwalaczy należących do tego użytkownika w danym formularzu.
Autoryzacja
Skrypty korzystające z tej metody wymagają autoryzacji z użyciem co najmniej jednego z tych zakresów:
-
https://www.googleapis.com/auth/script.scriptapp
get User Triggers(spreadsheet)
Pobiera wszystkie instalowane wyzwalacze należące do tego użytkownika w danym arkuszu kalkulacyjnym, tylko dla tego skryptu lub dodatku. Nie można jej użyć do wyświetlania wyzwalaczy dołączonych do innych skryptów.
const ss = SpreadsheetApp.getActiveSpreadsheet(); const triggers = ScriptApp.getUserTriggers(ss); // Log the event type for the first trigger in the array. Logger.log(triggers[0].getEventType());
Parametry
Nazwa | Typ | Opis |
---|---|---|
spreadsheet | Spreadsheet | Plik Arkuszy Google, który może zawierać wywoływacze do zainstalowania. |
Powrót
Trigger[]
– tablica wyzwalaczy należących do tego użytkownika w danym arkuszu kalkulacyjnym.
Autoryzacja
Skrypty korzystające z tej metody wymagają autoryzacji z użyciem co najmniej jednego z tych zakresów:
-
https://www.googleapis.com/auth/script.scriptapp
invalidate Auth()
Unieważnia autoryzację, którą użytkownik ma do wykonania bieżącego skryptu. Służy do unieważniania uprawnień bieżącego skryptu. Jest to szczególnie przydatne w przypadku funkcji oznaczonych jako autoryzacja jednorazowa. Funkcje jednorazowej autoryzacji można wywołać tylko podczas pierwszego uruchomienia skryptu po uzyskaniu autoryzacji. Jeśli chcesz wykonać działanie później, musisz cofnąć wszelkie uprawnienia skryptu, aby użytkownik mógł ponownie zobaczyć okno autoryzacji.
ScriptApp .invalidateAuth();
Rzuty
Error
– gdy unieważnienie się nie powiedzie
new State Token()
Tworzy narzędzie do tworzenia tokena stanu, którego można używać w interfejsie API wywołania zwrotnego (np. w przepływie OAuth).
// Generate a callback URL, given the name of a callback function. The script // does not need to be published as a web app; the /usercallback URL suffix // replaces /edit in any script's URL. function getCallbackURL(callbackFunction) { // IMPORTANT: Replace string below with the URL from your script, minus the // /edit at the end. const scriptUrl = 'https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz'; const urlSuffix = '/usercallback?state='; const stateToken = ScriptApp.newStateToken() .withMethod(callbackFunction) .withTimeout(120) .createToken(); return scriptUrl + urlSuffix + stateToken; }
W większości procesów OAuth2 token state
jest przekazywany bezpośrednio do punktu końcowego autoryzacji (nie jako część adresu URL wywołania zwrotnego), a punkt końcowy autoryzacji przekazuje go następnie jako część adresu URL wywołania zwrotnego.
Na przykład:
- Skrypt przekierowuje użytkownika na adres URL autoryzacji OAuth2:
https://accounts.google.com/o/oauth2/auth?state=token_generated_with_this_method&callback_uri=https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback&other_oauth2_parameters
- Użytkownik klika „Autoryzuj”, a strona autoryzacji OAuth2 przekierowuje go z powrotem do
https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback?state=token_generated_with_this_method&other_params_that_include_tokens_or_grants
- Powyższe przekierowanie (z powrotem do
http://script.google.com/...
) powoduje, że przeglądarka wysyła żądanie do/usercallback
, co wywołuje metodę określoną przezState
.Token Builder.withMethod(method)
Powrót
State
– obiekt używany do kontynuowania procesu tworzenia tokena stanu.
new Trigger(functionName)
Rozpoczyna proces tworzenia aktywatora, który można zainstalować i który po uruchomieniu wywołuje daną funkcję.
// Creates an edit trigger for a spreadsheet identified by ID. ScriptApp.newTrigger('myFunction') .forSpreadsheet('1234567890abcdefghijklmnopqrstuvwxyz_a1b2c3') .onEdit() .create();
Zanim utworzysz wyzwalacz, sprawdź, czy powiązana z nim funkcja ma wszystkie niezbędne uprawnienia OAuth.
Parametry
Nazwa | Typ | Opis |
---|---|---|
function | String | Funkcja, która ma być wywoływana po uruchomieniu aktywatora. Możesz używać funkcji z dołączonych bibliotek, np. Library.libFunction1 . |
Powrót
Trigger
– obiekt używany do kontynuowania procesu tworzenia reguły.
Autoryzacja
Skrypty korzystające z tej metody wymagają autoryzacji z użyciem co najmniej jednego z tych zakresów:
-
https://www.googleapis.com/auth/script.scriptapp
require All Scopes(authMode)
Sprawdza, czy użytkownik wyraził zgodę na wszystkie zakresy wymagane przez skrypt. Użyj tej metody, jeśli przepływ wykonania zależy od wszystkich zakresów, o które prosi skrypt. Jeśli brakuje jakichkolwiek zgód, ta metoda kończy bieżące wykonanie i wyświetla prośbę o autoryzację, aby poprosić o brakujące zgody.
Ta metoda działa tylko wtedy, gdy użytkownicy uruchamiają skrypt z platformy, która obsługuje szczegółową zgodę, np. z IDE Apps Script. Gdy skrypt jest uruchamiany bez zgody użytkownika w nieobsługiwanej usłudze, np. w dodatku do Google Workspace, na początku jego działania wyświetla się prośba o autoryzację, która umożliwia uzyskanie wszystkich zakresów.
ScriptApp .requireAllScopes(ScriptApp.AuthMode.FULL);
Parametry
Nazwa | Typ | Opis |
---|---|---|
auth | Auth | Tryb autoryzacji, w przypadku którego należy ocenić zakresy skryptu. W prawie wszystkich przypadkach wartość auth powinna wynosić Script , ponieważ żaden inny tryb autoryzacji nie wymaga od użytkowników przyznania autoryzacji. |
require Scopes(authMode, oAuthScopes)
Sprawdza, czy użytkownik wyraził zgodę na żądane zakresy. Użyj tej metody, jeśli przepływ wykonania zależy od co najmniej jednej usługi. Jeśli brakuje którejkolwiek z określonych zgód, ta metoda kończy bieżące wykonanie i wyświetla prośbę o autoryzację, aby uzyskać brakujące zgody. Zakresy, które są nieprawidłowe lub nie są wymagane przez skrypt, powodują błąd.
Ta metoda działa tylko wtedy, gdy użytkownicy uruchamiają skrypt z platformy, która obsługuje szczegółową zgodę, np. z IDE Apps Script. Gdy skrypt jest uruchamiany bez zgody użytkownika w nieobsługiwanej usłudze, np. w dodatku do Google Workspace, na początku jego działania wyświetla się prośba o autoryzację, która umożliwia uzyskanie wszystkich zakresów.
ScriptApp .requireScopes(ScriptApp.AuthMode.FULL, [ 'https://www.googleapis.com/auth/documents', 'https://www.googleapis.com/auth/presentations', ]);
Parametry
Nazwa | Typ | Opis |
---|---|---|
auth | Auth | Tryb autoryzacji, w przypadku którego należy ocenić żądane zakresy. W prawie wszystkich przypadkach wartość auth powinna wynosić Script , ponieważ żaden inny tryb autoryzacji nie wymaga od użytkowników przyznania autoryzacji. |
oAuthScopes | String[] | Zakresy OAuth wymagane do ukończenia danego procesu wykonania. |