Wbudowane usługi Google

Google Apps Script ma ponad 30 wbudowanych usług do interakcji z danymi użytkowników, innymi systemami Google i systemami zewnętrznymi. Usługi te są udostępniane jako obiekty globalne podobne do standardowego obiektu JavaScriptu Math. Na przykład Math udostępnia metody takie jak random() i stałe, np. PI, a usługa Arkuszy kalkulacyjnych w Apps Script udostępnia metody takie jak openById(id), klasy (obiekty podrzędne) takie jak Range i wyliczenia typu DataValidationCriteria.

Dokumentacja referencyjna dotycząca usług kontrolujących Google Workspace produkty są zbierane w sekcji „Google Workspace Usługi” pod nagłówkiem „Materiały referencyjne” na pasku bocznym tej witryny. W sekcji „Usługi skryptu” są zbierane usługi (np. tworzenie interfejsów użytkownika, analizowanie danych XML czy zapisywanie danych logów).

Nowoczesne funkcje JavaScript

Apps Script obsługuje 2 środowiska wykonawcze JavaScript: nowoczesne V8 i starsze z interpreterem JavaScriptu Rhino opracowanym przez Mozilli.

Środowisko wykonawcze V8 obsługuje nowoczesną składnię i funkcje ECMAScript. Środowisko wykonawcze Rhino jest oparte na starszym standardzie JavaScript 1.6 plus kilku funkcjach z wersji 1.7 i 1.8. Możesz swobodnie wybrać środowisko wykonawcze, którego chcesz używać ze skryptem, ale zdecydowanie zalecamy używanie środowiska wykonawczego V8.

Każde środowisko wykonawcze obsługuje klasy i obiekty JavaScriptu, które są dostępne dla Twojego skryptu, a także wbudowane i zaawansowane usługi Google. Skrypty mogą korzystać z typowych obiektów, takich jak Array, Date, RegExp itp., a także z obiektów globalnych Math i Object.

Korzystanie z autouzupełniania

Edytor skryptów jest wyposażony w funkcję „wspomaganie treścią”, zwaną częściej „autouzupełnianiem”, która ujawnia obiekty globalne oraz metody i wyliczenia, które są prawidłowe w bieżącym kontekście skryptu. Sugestie autouzupełniania pojawiają się automatycznie za każdym razem, gdy wpiszesz kropkę po globalnym obiekcie, wyliczeniu lub wywołaniu metody, które zwraca klasę Apps Script. Na przykład:

  • Jeśli wpiszesz pełną nazwę obiektu globalnego lub wybierzesz jeden z autouzupełniania, a następnie wpisz . (kropkę), zobaczysz wszystkie metody i wyliczenia dla tej klasy.
  • Jeśli wpiszesz kilka znaków, zobaczysz wszystkie poprawne sugestie rozpoczynające się od tych znaków.

Informacje o obiektach globalnych

Każda usługa ma co najmniej 1 obiekt globalny (najwyższego poziomu), np. usługa Gmail jest dostępna wyłącznie z poziomu obiektu GmailApp. Niektóre usługi udostępniają wiele obiektów globalnych. Na przykład usługa podstawowa zawiera 4 obiekty globalne: Browser, Logger, MimeType i Session.

Metody wywoływania

Obiekty globalne niemal wszystkich usług wbudowanych lub usług zaawansowanych zawierają metody, które zwracają dane lub klasę Apps Script. Skrypty wywołują metody w tym formacie:

GlobalObjectName.methodName(argument1, argument2, ..., argumentN);

Na przykład skrypt może wysłać e-maila, wywołując metodę sendEmail(recipient, subject, body) usługi Gmail w ten sposób:

GmailApp.sendEmail('claire@example.com', 'Subject line', 'This is the body.');

Jeśli metoda zwraca inną klasę Apps Script, możesz połączyć wywołania metody w jednym wierszu. Typy zwrotów są wyświetlane zarówno w autouzupełnianiu, jak i w dokumentacji referencyjnej metody. Na przykład metoda DocumentApp.create() zwraca wartość Document, więc te 2 sekcje kodu są równoważne:

var doc = DocumentApp.create('New document');
var body = doc.getBody();
body.appendParagraph('New paragraph.');

// Same result as above.
DocumentApp.create('New document').getBody().appendParagraph('New paragraph.');

Dostęp do zajęć podrzędnych

Każda usługa zawiera co najmniej jedną klasę podrzędną, do której nie można uzyskać dostępu z najwyższego poziomu w zależności od obiektu globalnego. Do utworzenia tych klas nie można użyć słowa kluczowego new, tak jak w przypadku standardowych klas JavaScript, takich jak Date. Dostęp do klas podrzędnych można uzyskać tylko przez wywołanie metody, która ją zwraca. Jeśli nie wiesz, jak uzyskać dostęp do określonej klasy, otwórz stronę główną z dokumentacją usługi i poszukaj metody, która zwraca oczekiwaną klasę.

Obsługa interfejsów

Niektóre usługi obejmują specjalne klasy oznaczone w dokumentacji jako „interfejsy”. Są to klasy ogólne używane jako typy zwracanych metod, które nie mogą z wyprzedzeniem określić dokładnego typu. Na przykład metoda Usługa dokumentów Body.getChild(childIndex) zwraca ogólny obiekt Element. Element to interfejs reprezentujący inną klasę, prawdopodobnie Paragraph lub Table. Obiekty interfejsu rzadko są przydatne samodzielnie. Aby rzutować obiekt z powrotem do dokładnej klasy, zwykle najlepiej jest wywoływać metodę taką jak Element.asParagraph().

Praca z wyliczeniami

Większość usług zawiera kilka wyliczeń (typów wyliczonych) nazwanych wartości. Na przykład usługa Dysk używa wyliczeń Access i Permission do określania, którzy użytkownicy mają dostęp do pliku lub folderu. W niemal wszystkich przypadkach do tych wyliczeniowych uzyskuje się dostęp z obiektu globalnego. Na przykład wywołanie metody Folder.setSharing(accessType, permissionType) wygląda tak:

// Creates a folder that anyone on the Internet can read from and write to. (Domain administrators can
// prohibit this setting for Google Workspace users.)
var folder = DriveApp.createFolder('Shared Folder');
folder.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT);