Class ScriptApp

Skrypt aplikacji

Dostęp do skryptów i reguł, a także manipulowanie nimi. Ta klasa umożliwia użytkownikom tworzenie aktywatorów skryptu i kontrolowanie publikowania jako usługi.

Właściwości

WłaściwośćTypOpis
AuthModeAuthModeWyliczenie, które kategorie autoryzowanych usług Apps Script mogą wykonywać za pomocą aktywowanej funkcji.
AuthorizationStatusAuthorizationStatusOpis wskazujący stan autoryzacji skryptu.
EventTypeEventTypeOpis określający typ wywołanego zdarzenia.
InstallationSourceInstallationSourceOkreślenie, w jaki sposób skrypt został zainstalowany na urządzeniu użytkownika jako dodatek.
TriggerSourceTriggerSourceOpis wskazujący źródło zdarzenia, które powoduje uruchomienie reguły.
WeekDayWeekdayWyliczenie reprezentujące dni tygodnia.

Metody

MetodaZwracany typKrótki opis
deleteTrigger(trigger)voidUsuwa daną regułę, co powoduje jej wyłączenie.
getAuthorizationInfo(authMode)AuthorizationInfoPobiera obiekt określający, czy użytkownik musi upoważnić ten skrypt do korzystania z co najmniej jednej usługi, oraz podać URL w oknie autoryzacji.
getIdentityToken()StringPobiera token tożsamości OpenID Connect dla odpowiedniego użytkownika, jeśli przyznano zakres openid.
getInstallationSource()InstallationSourceZwraca wartość 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 przez administratora domeny u wszystkich użytkowników).
getOAuthToken()StringPobiera token dostępu OAuth 2.0 dla rzeczywistego użytkownika.
getProjectTriggers()Trigger[]Pobiera wszystkie możliwe do zainstalowania reguły powiązane z bieżącym projektem i bieżącym użytkownikiem.
getScriptId()StringPobiera unikalny identyfikator projektu skryptu.
getService()ServicePobiera obiekt używany do kontrolowania skryptu jako aplikacji internetowej.
getUserTriggers(document)Trigger[]Pobiera wszystkie możliwe do zainstalowania wyzwalacze należące do tego użytkownika w danym dokumencie tylko dla tego skryptu lub dodatku.
getUserTriggers(form)Trigger[]Pobiera wszystkie możliwe do zainstalowania reguły należące do tego użytkownika w danym formularzu tylko dla tego skryptu lub dodatku.
getUserTriggers(spreadsheet)Trigger[]Pobiera wszystkie możliwe do zainstalowania aktywatory należące do tego użytkownika w danym arkuszu kalkulacyjnym wyłącznie dla tego skryptu lub dodatku.
invalidateAuth()voidUnieważnianie autoryzacji, który musi wykonać obecny użytkownik.
newStateToken()StateTokenBuilderTworzy konstruktor tokenu stanu, którego można użyć w interfejsie API wywołania zwrotnego (np. proces OAuth).
newTrigger(functionName)TriggerBuilderRozpoczyna proces tworzenia reguły możliwej do zainstalowania, która po uruchomieniu wywołuje określoną funkcję.

Szczegółowa dokumentacja

deleteTrigger(trigger)

Usuwa daną regułę, co powoduje jej wyłączenie.

// Deletes all triggers in the current project.
var triggers = ScriptApp.getProjectTriggers();
for (var i = 0; i < triggers.length; i++) {
  ScriptApp.deleteTrigger(triggers[i]);
}

Parametry

NazwaTypOpis
triggerTriggerAktywator do usunięcia.

Autoryzacja

Skrypty korzystające z tej metody wymagają autoryzacji przy użyciu co najmniej jednego z tych zakresów:

  • https://www.googleapis.com/auth/script.scriptapp

getAuthorizationInfo(authMode)

Pobiera obiekt określający, czy użytkownik musi upoważnić ten skrypt do korzystania z co najmniej jednej usługi, oraz podać URL w oknie autoryzacji. Jeśli skrypt zostanie opublikowany jako dodatek, który korzysta z instalacyjnych reguł, możesz wykorzystać te informacje do kontrolowania dostępu do sekcji kodu, w przypadku których użytkownik nie ma wymaganych uprawnień. Dodatek może też poprosić użytkownika o otworzenie adresu URL okna dialogowego autoryzacji w celu rozwiązania problemu.

var authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL);
status = authInfo.getAuthorizationStatus();
url = authInfo.getAuthorizationUrl();

Parametry

NazwaTypOpis
authModeAuthModetryb autoryzacji, w przypadku którego wymagane są informacje o autoryzacji. Prawie w każdym przypadku wartość authMode powinna wynosić ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL), bo żaden inny tryb autoryzacji nie wymaga, aby użytkownicy udzielali autoryzacji.

Zwróć

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


getIdentityToken()

Pobiera token tożsamości OpenID Connect dla odpowiedniego użytkownika, jeśli przyznano zakres openid. Ten zakres nie jest domyślnie uwzględniany i musisz go dodać jako zakres ograniczony do pliku manifestu, by o niego poprosić. Uwzględnij zakresy https://www.googleapis.com/auth/userinfo.email lub https://www.googleapis.com/auth/userinfo.profile, aby zwrócić dodatkowe informacje o tokenie w tokenie.

Zwrócony token identyfikatora jest zakodowanym tokenem internetowym JSON (JWT) i musi zostać zdekodowany, aby można było pobrać z niego informacje. Poniższy przykład pokazuje, jak zdekodować token i wyodrębnić efektywny identyfikator profilu Google użytkownika.

var idToken = ScriptApp.getIdentityToken();
var body = idToken.split('.')[1];
var decoded = Utilities.newBlob(Utilities.base64Decode(body)).getDataAsString();
var payload = JSON.parse(decoded);
var profileId = payload.sub;
Logger.log('Profile ID: ' + profileId);
Pełną listę zwróconych pól (roszczeń) znajdziesz w dokumentacji OpenID Connect.

Zwróć

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


getInstallationSource()

Zwraca wartość 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 przez administratora domeny u wszystkich użytkowników).

Zwróć

InstallationSource – źródło instalacji,


getOAuthToken()

Pobiera token dostępu OAuth 2.0 dla rzeczywistego użytkownika. Jeśli zakresy OAuth skryptu są wystarczające do autoryzacji innego interfejsu API Google, który zwykle wymaga własnego przepływu OAuth (np. Selektora Google), skrypty mogą pomijać drugi wiersz autoryzacji, przekazując ten token. Token wygaśnie po pewnym czasie (co najmniej kilka minut). Skrypty powinny obsługiwać błędy autoryzacji i wywoływać tę metodę w razie potrzeby, aby uzyskać nowy token.

Token zwrócony przez tę metodę zawiera tylko te zakresy, których obecnie potrzebuje skrypt. 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óre są wymagane przez skrypt, możesz je określić w pliku manifestu skryptu.

Zwróć

String – ciąg tekstowy reprezentujący token OAuth 2.0;


getProjectTriggers()

Pobiera wszystkie możliwe do zainstalowania reguły powiązane z bieżącym projektem i bieżącym użytkownikiem.

Logger.log('Current project has ' + ScriptApp.getProjectTriggers().length + ' triggers.');

Zwróć

Trigger[] – tablica bieżącego aktywatora użytkownika powiązanego z tym projektem;

Autoryzacja

Skrypty korzystające z tej metody wymagają autoryzacji przy użyciu co najmniej jednego z tych zakresów:

  • https://www.googleapis.com/auth/script.scriptapp

getScriptId()

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

Zwróć

String – identyfikator projektu skryptu;


getService()

Pobiera obiekt używany do kontrolowania skryptu jako aplikacji internetowej.

// Get the URL of the published web app.
var url = ScriptApp.getService().getUrl();

Zwróć

Service – obiekt używany do obserwowania i kontrolowania skryptu jako aplikacji internetowej.


getUserTriggers(document)

Pobiera wszystkie możliwe do zainstalowania wyzwalacze należące do tego użytkownika w danym dokumencie tylko dla tego skryptu lub dodatku. Tej metody nie można używać do wyświetlania reguł dołączonych do innych skryptów.

var doc = DocumentApp.getActiveDocument();
var 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ć reguły, które można zainstalować.

Zwróć

Trigger[] – tablica reguł należących do tego użytkownika w danym dokumencie.

Autoryzacja

Skrypty korzystające z tej metody wymagają autoryzacji przy użyciu co najmniej jednego z tych zakresów:

  • https://www.googleapis.com/auth/script.scriptapp

getUserTriggers(form)

Pobiera wszystkie możliwe do zainstalowania reguły należące do tego użytkownika w danym formularzu tylko dla tego skryptu lub dodatku. Tej metody nie można używać do wyświetlania reguł dołączonych do innych skryptów.

var form = FormApp.getActiveForm();
var 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ć reguły możliwe do zainstalowania.

Zwróć

Trigger[] – tablica reguł należących do tego użytkownika w danym formularzu.

Autoryzacja

Skrypty korzystające z tej metody wymagają autoryzacji przy użyciu co najmniej jednego z tych zakresów:

  • https://www.googleapis.com/auth/script.scriptapp

getUserTriggers(spreadsheet)

Pobiera wszystkie możliwe do zainstalowania aktywatory należące do tego użytkownika w danym arkuszu kalkulacyjnym wyłącznie dla tego skryptu lub dodatku. Tej metody nie można używać do wyświetlania reguł dołączonych do innych skryptów.

var ss = SpreadsheetApp.getActiveSpreadsheet();
var 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ć reguły, które można zainstalować.

Zwróć

Trigger[] – tablica reguł należących do tego użytkownika w danym arkuszu kalkulacyjnym.

Autoryzacja

Skrypty korzystające z tej metody wymagają autoryzacji przy użyciu co najmniej jednego z tych zakresów:

  • https://www.googleapis.com/auth/script.scriptapp

invalidateAuth()

Unieważnianie autoryzacji, który musi wykonać obecny użytkownik. Służy do unieważnienia uprawnień do bieżącego skryptu. Jest to szczególnie przydatne w przypadku funkcji otagowanych jako autoryzacja 1-punktowa. Ze względu na to, że funkcje autoryzacji jednorazowej mogą być wywoływane wyłącznie po pierwszym uruchomieniu skryptu po uzyskaniu autoryzacji, więc po wykonaniu tego działania musisz cofnąć wszelkie upoważnienie, aby użytkownik mógł ponownie zobaczyć okno autoryzacji.

ScriptApp.invalidateAuth();

Narzuty

Error – jeśli unieważnienie nie powiedzie się,


newStateToken()

Tworzy konstruktor tokenu stanu, którego można użyć w interfejsie API wywołania zwrotnego (np. proces 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.
  var scriptUrl = 'https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz';
  var urlSuffix = '/usercallback?state=';
  var 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 jest częścią adresu URL wywołania zwrotnego), a następnie przekazuje go jako część adresu URL wywołania zwrotnego.

Przykład:

  • Skrypt przekierowuje użytkownika do autoryzacji OAuth2 adresu URL: 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 autoryzację, a strona autoryzacji OAuth2 przekierowuje użytkownika 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 (powrót do http://script.google.com/...) powoduje wysłanie żądania przeglądarki do /usercallback, które wywołuje metodę określoną przez StateTokenBuilder.withMethod(method).

Zwróć

StateTokenBuilder – obiekt kontynuowany procesu kompilacji stanu.


newTrigger(functionName)

Rozpoczyna proces tworzenia reguły możliwej do zainstalowania, która 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 wywoływana po uruchomieniu reguły. Możesz użyć funkcji z uwzględnionych bibliotek, takich jak Library.libFunction1.

Zwróć

TriggerBuilder – obiekt używany do kontynuowania procesu tworzenia aktywatorów;

Autoryzacja

Skrypty korzystające z tej metody wymagają autoryzacji przy użyciu co najmniej jednego z tych zakresów:

  • https://www.googleapis.com/auth/script.scriptapp

Wycofane metody