Dostęp do publikowania skryptu i jego uruchamiania oraz możliwość ich modyfikowania. Ta klasa umożliwia użytkownikom tworzenie wyzwalaczy skryptu i kontrolowanie publikowania skryptu jako usługi.
Właściwości
Właściwość | Typ | Opis |
---|---|---|
Auth | Auth | Wyliczenie określające, które kategorie autoryzowanych usług może wykonywać Apps Script za pomocą funkcji wywoływanej. |
Authorization | Authorization | Wyliczenie określające stan autoryzacji skryptu. |
Event | Event | Wyliczenie określające typ wywołanego zdarzenia. |
Installation | Installation | Wyliczenie określające, jak skrypt został zainstalowany u użytkownika jako dodatek. |
Trigger | Trigger | Wyliczenie określają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 dany regułę, aby nie była już wykonywana. |
get | Authorization | Pobiera obiekt, który sprawdza, czy użytkownik udzielił uprawnień do wszystkich wymagań skryptu. |
get | Authorization | Pobiera obiekt, który sprawdza, czy użytkownik udzielił uprawnień do żądanych zakresów. |
get | String | Pobiera token tożsamości Openopenid został przyznany. |
get | Installation | Zwraca wartość typu enum, która wskazuje, jak skrypt został zainstalowany jako dodatek dla bieżącego użytkownika (np. czy użytkownik zainstalował go osobiście w Chrome Web Store czy też administrator domeny zainstalował go dla wszystkich użytkowników). |
get | String | Pobiera token dostępu OAuth 2.0 dla skutecznego użytkownika. |
get | Trigger[] | Pobiera wszystkie instalowalne wyzwalacze powiązane z bieżącym projektem i bieżącym użytkownikiem. |
get | String | Pobiera unikalny identyfikator projektu skryptu. |
get | Service | Pobiera obiekt służący do kontrolowania publikowania skryptu jako aplikacji internetowej. |
get | Trigger[] | Pobiera wszystkie wyzwalacze, które można zainstalować, należące do tego użytkownika w danym dokumencie, tylko w przypadku tego skryptu lub tego dodatku. |
get | Trigger[] | Pobiera wszystkie wyzwalacze do zainstalowania należące do tego użytkownika w danym formularzu, tylko w przypadku tego skryptu lub dodatku. |
get | Trigger[] | Pobiera wszystkie wyzwalacze, które można zainstalować, należące do tego użytkownika w danym arkuszu kalkulacyjnym, tylko w przypadku tego skryptu lub dodatku. |
invalidate | void | Unieważnia autoryzację, którą użytkownik ma do wykonania bieżącego skryptu. |
new | State | Tworzy kreator tokenu stanu, który można używać w interfejsie wywołania zwrotnego (np. w procesie OAuth). |
new | Trigger | Rozpoczyna proces tworzenia instalowanego aktywatora, który po uruchomieniu wywołuje określoną funkcję. |
require | void | Sprawdzanie, czy użytkownik wyraził zgodę na wszystkie zakresy wymagane przez skrypt. |
require | void | Sprawdzanie, czy użytkownik wyraził zgodę na wymagane zakresy. |
Szczegółowa dokumentacja
delete Trigger(trigger)
Usuwa dany regułę, aby nie była już wykonywana.
// 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, który chcesz usunąć. |
Autoryzacja
Skrypty, które korzystają z tej metody, wymagają autoryzacji z co najmniej jednym z tych zakresów:
-
https://www.googleapis.com/auth/script.scriptapp
get Authorization Info(authMode)
Pobiera obiekt, który sprawdza, czy użytkownik udzielił autoryzacji dla wszystkich wymagań skryptu. Obiekt zawiera też adres URL autoryzacji, który umożliwia użytkownikom przyznanie tych uprawnień, jeśli jakiekolwiek wymagania skryptu nie są autoryzowane.
Niektóre uruchamiania skryptu mogą się rozpoczynać bez zgody użytkownika na wszystkie wymagane zakresy skryptu. 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 na potrzeby 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 żądane są informacje autoryzacyjne. W prawie wszystkich przypadkach wartość parametru auth powinna wynosić Script , ponieważ żaden inny tryb autoryzacji nie wymaga udzielenia autoryzacji przez użytkowników. |
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 udzielił autoryzacji dla żądanych zakresów. Obiekt zawiera też adres URL autoryzacji, za pomocą którego użytkownicy mogą przyznać te uprawnienia, jeśli któreś z żądanych zakresów nie jest autoryzowane.
Niektóre uruchamiania skryptu mogą się rozpoczynać bez zgody użytkownika na wszystkie wymagane zakresy skryptu. 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 na potrzeby 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, w którym żądane są informacje autoryzacyjne. W prawie wszystkich przypadkach wartość parametru auth powinna wynosić Script , ponieważ żaden inny tryb autoryzacji nie wymaga udzielenia autoryzacji przez użytkowników. |
oAuthScopes | String[] | Zakresy OAuth, dla których wymagane są informacje autoryzacyjne. |
Powrót
Authorization
– obiekt zawierający informacje o stanie autoryzacji użytkownika i adres URL autoryzacji na wypadek, gdyby brakowało niektórych zgód.
get Identity Token()
Pobiera token tożsamości Openopenid
został przyznany. Ten zakres nie jest domyślnie uwzględniany. Aby go zażądać, musisz go dodać jako wyraźny zakres w pliku manifestu. Uwzględnij zakresy https://www.googleapis.com/auth/userinfo.email
lub https://www.googleapis.com/auth/userinfo.profile
, aby zwrócić w tokenie dodatkowe informacje o użytkowniku.
Zwrócony token identyfikatora to zakodowany token sieciowy JSON (JWT), który musi zostać odkodowany, aby wyodrębnić z niego informacje. Poniższe przykłady pokazują, jak odkodować token i wyodrębnić identyfikator profilu Google skutecznego 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ść typu enum, która wskazuje, jak skrypt został zainstalowany jako dodatek dla bieżącego użytkownika (np. czy użytkownik zainstalował go osobiście w Chrome Web Store czy też 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 skutecznego użytkownika. Jeśli zakresy OAuth skryptu wystarczają do autoryzacji innego interfejsu API Google, który zwykle wymaga własnego procesu OAuth (np. Google Picker), skrypty mogą pominąć drugie okno autoryzacji, przekazując 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ę obejmuje tylko te zakresy, których potrzebuje skrypt. Zakresy, które zostały wcześniej autoryzowane, ale nie są już używane przez skrypt, nie są uwzględniane w zwróconym tokenie. Jeśli oprócz wymagań samego skryptu potrzebne są dodatkowe zakresy OAuth, można je określić w pliku manifestu skryptu.
Powrót
String
– reprezentacja ciągu znaków tokena OAuth 2.0.
get Project Triggers()
Pobiera wszystkie instalowalne wyzwalacze 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, które korzystają z tej metody, wymagają autoryzacji z co najmniej jednym z tych zakresów:
-
https://www.googleapis.com/auth/script.scriptapp
get Script Id()
Pobiera unikalny identyfikator projektu skryptu. Jest to preferowana metoda uzyskiwania niepowtarzalnego identyfikatora projektu skryptu, a nie
. Tego identyfikatora można używać we wszystkich miejscach, w których wcześniej podano klucz projektu.get
Powrót
String
– identyfikator projektu skryptu.
get Service()
Pobiera obiekt służący do kontrolowania publikowania skryptu jako aplikacji internetowej.
// Get the URL of the published web app. const url = ScriptApp.getService().getUrl();
Powrót
Service
– obiekt służący do obserwowania i kontrolowania publikowania skryptu jako aplikacji internetowej.
get User Triggers(document)
Pobiera wszystkie wyzwalacze, które można zainstalować, należące do tego użytkownika w danym dokumencie, tylko w przypadku tego skryptu lub tego dodatku. Nie można jej używać 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ć instalowane wyzwalacze. |
Powrót
Trigger[]
– tablica wyzwalaczy należących do tego użytkownika w danym dokumencie.
Autoryzacja
Skrypty, które korzystają z tej metody, wymagają autoryzacji z co najmniej jednym z tych zakresów:
-
https://www.googleapis.com/auth/script.scriptapp
get User Triggers(form)
Pobiera wszystkie wyzwalacze do zainstalowania należące do tego użytkownika w danym formularzu, tylko w przypadku tego skryptu lub dodatku. Nie można jej używać 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ć instalowane reguły. |
Powrót
Trigger[]
– tablica elementów wyzwalających należących do tego użytkownika w danym formularzu.
Autoryzacja
Skrypty, które korzystają z tej metody, wymagają autoryzacji z co najmniej jednym z tych zakresów:
-
https://www.googleapis.com/auth/script.scriptapp
get User Triggers(spreadsheet)
Pobiera wszystkie wyzwalacze, które można zainstalować, należące do tego użytkownika w danym arkuszu kalkulacyjnym, tylko w przypadku tego skryptu lub dodatku. Nie można jej używać 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ć instalowane reguły. |
Powrót
Trigger[]
– tablica elementów wyzwalających należących do tego użytkownika w danym arkuszu kalkulacyjnym.
Autoryzacja
Skrypty, które korzystają z tej metody, wymagają autoryzacji z co najmniej jednym 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 wszystkich uprawnień dla 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ć jakąś czynność później, musisz cofnąć autoryzację skryptu, aby użytkownik mógł ponownie zobaczyć okno autoryzacji.
ScriptApp .invalidateAuth();
Rzuty
Error
– gdy unieważnienie się nie powiedzie,
new State Token()
Tworzy kreator tokenu stanu, który można używać w interfejsie wywołania zwrotnego (np. w procesie 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 przepływó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 jako część adresu URL wywołania zwrotnego.
Na przykład:
- Skrypt przekierowuje użytkownika do adresu URL autoryzacji OAuth 2:
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
, które wywołuje metodę określoną przezState
.Token Builder.withMethod(method)
Powrót
State
– obiekt używany do kontynuowania procesu tworzenia tokenu stanu.
new Trigger(functionName)
Rozpoczyna proces tworzenia instalowanego aktywatora, który po uruchomieniu wywołuje określoną funkcję.
// Creates an edit trigger for a spreadsheet identified by ID. ScriptApp.newTrigger('myFunction') .forSpreadsheet('1234567890abcdefghijklmnopqrstuvwxyz_a1b2c3') .onEdit() .create();
Parametry
Nazwa | Typ | Opis |
---|---|---|
function | String | Funkcja do wywołania po uruchomieniu reguły. Możesz używać funkcji z dołączonych bibliotek, takich jak Library.libFunction1 . |
Powrót
Trigger
– obiekt używany do kontynuowania procesu tworzenia reguły.
Autoryzacja
Skrypty, które korzystają z tej metody, wymagają autoryzacji z co najmniej jednym z tych zakresów:
-
https://www.googleapis.com/auth/script.scriptapp
require All Scopes(authMode)
Sprawdzanie, czy użytkownik wyraził zgodę na wszystkie zakresy wymagane przez skrypt. Używaj tej metody, jeśli przepływ wykonywania zależy od wszystkich zakresów, o które prosi skrypt. Jeśli brakuje 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 poziomu interfejsu, który obsługuje szczegółową zgodę, na przykład z poziomu środowiska IDE Apps Script. Gdy skrypt jest uruchamiany z brakiem zgód z nieobsługiwanej platformy, np. dodatku do Google Workspace, na początku jego wykonywania wyświetla się prośba o autoryzację, aby poprosić o wszystkie zakresy.
ScriptApp .requireAllScopes(ScriptApp.AuthMode.FULL);
Parametry
Nazwa | Typ | Opis |
---|---|---|
auth | Auth | Tryb autoryzacji, dla którego należy ocenić zakresy skryptu. W prawie wszystkich przypadkach wartość parametru auth powinna wynosić Script , ponieważ żaden inny tryb autoryzacji nie wymaga od użytkowników udzielenia autoryzacji. |
require Scopes(authMode, oAuthScopes)
Sprawdzanie, czy użytkownik wyraził zgodę na wymagane zakresy. Użyj tej metody, jeśli przepływ wykonania zależy od co najmniej jednej usługi. Jeśli brakuje któregoś ze wskazanych zgód, metoda kończy bieżące wykonanie i wyświetla prośbę o autoryzację, aby poprosić o 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 poziomu interfejsu, który obsługuje szczegółową zgodę, na przykład z poziomu środowiska IDE Apps Script. Gdy skrypt jest uruchamiany z brakiem zgód z nieobsługiwanej platformy, np. dodatku do Google Workspace, na początku jego wykonywania wyświetla się prośba o autoryzację, aby poprosić o wszystkie zakresy.
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 którym należy ocenić żądane zakresy uprawnień. W prawie wszystkich przypadkach wartość parametru auth powinna wynosić Script , ponieważ żaden inny tryb autoryzacji nie wymaga od użytkowników udzielenia autoryzacji. |
oAuthScopes | String[] | Zakresy uprawnień OAuth wymagane do wykonania danego procesu wykonania. |