Class ScriptApp

Aplikacja Script

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śćTypOpis
AuthModeAuthModeWyliczenie określające, które kategorie autoryzowanych usług może wykonywać Apps Script za pomocą funkcji wywoływanej.
AuthorizationStatusAuthorizationStatusWyliczenie określające stan autoryzacji skryptu.
EventTypeEventTypeWyliczenie określające typ wywołanego zdarzenia.
InstallationSourceInstallationSourceWyliczenie określające, jak skrypt został zainstalowany u użytkownika jako dodatek.
TriggerSourceTriggerSourceWyliczenie określające źródło zdarzenia, które powoduje uruchomienie reguły.
WeekDayWeekdayWyliczenie reprezentujące dni tygodnia.

Metody

MetodaZwracany typKrótki opis
deleteTrigger(trigger)voidUsuwa dany regułę, aby nie była już wykonywana.
getAuthorizationInfo(authMode)AuthorizationInfoPobiera obiekt, który sprawdza, czy użytkownik udzielił uprawnień do wszystkich wymagań skryptu.
getAuthorizationInfo(authMode, oAuthScopes)AuthorizationInfoPobiera obiekt, który sprawdza, czy użytkownik udzielił uprawnień do żądanych zakresów.
getIdentityToken()StringPobiera token tożsamości OpenID Connect dla skutecznego użytkownika, jeśli zakres openid został przyznany.
getInstallationSource()InstallationSourceZwraca 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).
getOAuthToken()StringPobiera token dostępu OAuth 2.0 dla skutecznego użytkownika.
getProjectTriggers()Trigger[]Pobiera wszystkie instalowalne wyzwalacze powiązane z bieżącym projektem i bieżącym użytkownikiem.
getScriptId()StringPobiera unikalny identyfikator projektu skryptu.
getService()ServicePobiera obiekt służący do kontrolowania publikowania skryptu jako aplikacji internetowej.
getUserTriggers(document)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.
getUserTriggers(form)Trigger[]Pobiera wszystkie wyzwalacze do zainstalowania należące do tego użytkownika w danym formularzu, tylko w przypadku tego skryptu lub dodatku.
getUserTriggers(spreadsheet)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.
invalidateAuth()voidUnieważnia autoryzację, którą użytkownik ma do wykonania bieżącego skryptu.
newStateToken()StateTokenBuilderTworzy kreator tokenu stanu, który można używać w interfejsie wywołania zwrotnego (np. w procesie OAuth).
newTrigger(functionName)TriggerBuilderRozpoczyna proces tworzenia instalowanego aktywatora, który po uruchomieniu wywołuje określoną funkcję.
requireAllScopes(authMode)voidSprawdzanie, czy użytkownik wyraził zgodę na wszystkie zakresy wymagane przez skrypt.
requireScopes(authMode, oAuthScopes)voidSprawdzanie, czy użytkownik wyraził zgodę na wymagane zakresy.

Szczegółowa dokumentacja

deleteTrigger(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

NazwaTypOpis
triggerTriggerAktywator, 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

getAuthorizationInfo(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

NazwaTypOpis
authModeAuthModeTryb autoryzacji, dla którego żądane są informacje autoryzacyjne. W prawie wszystkich przypadkach wartość parametru authMode powinna wynosić ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL), ponieważ żaden inny tryb autoryzacji nie wymaga udzielenia autoryzacji przez użytkowników.

Powrót

AuthorizationInfo – obiekt, który może zawierać informacje o stanie autoryzacji użytkownika.


getAuthorizationInfo(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

NazwaTypOpis
authModeAuthModeTryb autoryzacji, w którym żądane są informacje autoryzacyjne. W prawie wszystkich przypadkach wartość parametru authMode powinna wynosić ScriptApp.AuthMode.FULL, ponieważ żaden inny tryb autoryzacji nie wymaga udzielenia autoryzacji przez użytkowników.
oAuthScopesString[]Zakresy OAuth, dla których wymagane są informacje autoryzacyjne.

Powrót

AuthorizationInfo – obiekt zawierający informacje o stanie autoryzacji użytkownika i adres URL autoryzacji na wypadek, gdyby brakowało niektórych zgód.


getIdentityToken()

Pobiera token tożsamości OpenID Connect dla skutecznego użytkownika, jeśli zakres openid 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}`);
Pełną listę zwracanych pól (roszczeń) znajdziesz w dokumentacji OpenID Connect.

Powrót

String – token tożsamości (jeśli jest dostępny), w przeciwnym razie null.


getInstallationSource()

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

InstallationSource – źródło instalacji.


getOAuthToken()

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.


getProjectTriggers()

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

getScriptId()

Pobiera unikalny identyfikator projektu skryptu. Jest to preferowana metoda uzyskiwania niepowtarzalnego identyfikatora projektu skryptu, a nie getProjectKey(). Tego identyfikatora można używać we wszystkich miejscach, w których wcześniej podano klucz projektu.

Powrót

String – identyfikator projektu skryptu.


getService()

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.


getUserTriggers(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

NazwaTypOpis
documentDocumentPlik 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

getUserTriggers(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

NazwaTypOpis
formFormPlik 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

getUserTriggers(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

NazwaTypOpis
spreadsheetSpreadsheetPlik 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

invalidateAuth()

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,


newStateToken()

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ą przez StateTokenBuilder.withMethod(method).

Powrót

StateTokenBuilder – obiekt używany do kontynuowania procesu tworzenia tokenu stanu.


newTrigger(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

NazwaTypOpis
functionNameStringFunkcja do wywołania po uruchomieniu reguły. Możesz używać funkcji z dołączonych bibliotek, takich jak Library.libFunction1.

Powrót

TriggerBuilder – 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

requireAllScopes(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

NazwaTypOpis
authModeAuthModeTryb autoryzacji, dla którego należy ocenić zakresy skryptu. W prawie wszystkich przypadkach wartość parametru authMode powinna wynosić ScriptApp.AuthMode.FULL, ponieważ żaden inny tryb autoryzacji nie wymaga od użytkowników udzielenia autoryzacji.

requireScopes(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

NazwaTypOpis
authModeAuthModeTryb autoryzacji, w którym należy ocenić żądane zakresy uprawnień. W prawie wszystkich przypadkach wartość parametru authMode powinna wynosić ScriptApp.AuthMode.FULL, ponieważ żaden inny tryb autoryzacji nie wymaga od użytkowników udzielenia autoryzacji.
oAuthScopesString[]Zakresy uprawnień OAuth wymagane do wykonania danego procesu wykonania.

Wycofane metody