Class ScriptApp

ScriptAplikacja

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 służący do określenia, czy użytkownik musi autoryzować ten skrypt do korzystania z jednej lub większej liczby usług, oraz do podania adresu URL okna autoryzacji.
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ę.

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 służący do określenia, czy użytkownik musi autoryzować ten skrypt do korzystania z jednej lub większej liczby usług, oraz do podania adresu URL okna autoryzacji. Jeśli skrypt jest opublikowany jako dodatek korzystający z instalowalnych wyzwalaczy, te informacje mogą służyć do kontrolowania dostępu do sekcji kodu, do których użytkownik nie ma odpowiednich uprawnień. Dodatek może też poprosić użytkownika o otworzenie adresu URL okna autoryzacji w celu rozwiązania problemu.

var authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL);
status = authInfo.getAuthorizationStatus();
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.


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 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 zakresów wymaganych przez skrypt 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. 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 sterowania publikowaniem 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 wyzwalaczy 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. Funkcja jednorazowej autoryzacji może zostać wywołana tylko podczas pierwszego uruchomienia skryptu po uzyskaniu autoryzacji. Jeśli chcesz wykonać jakieś działanie później, musisz cofnąć autoryzację skryptu, aby użytkownik mógł ponownie wyświetlić 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 ścieżek 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

Wycofane metody