Wbudowane usługi Google

Google Apps Script zapewnia 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 Math JavaScriptu. Na przykład Math oferuje metody takie jak random() i stałe takie jak PI, a usługa Arkuszy Google w Apps Script oferuje metody takie jak openById(id), klasy (obiekty podrzędne) takie jak Range czy wyliczenia takie jak DataValidationCriteria.

Dokumentacja referencyjna dotycząca usług pozwalających kontrolowaćGoogle Workspace produkty są zbierane w sekcji „Google Workspace Usługi” pod nagłówkiem „Plik referencyjny” na pasku bocznym w tej witrynie. Usługi narzędziowe (do tworzenia interfejsów użytkownika, analizowania kodu XML czy zapisywania danych logów) są zbierane w sekcji „Usługi skryptów”.

Nowoczesne funkcje JavaScript

Apps Script obsługuje 2 środowiska wykonawcze JavaScript: nowoczesne środowisko wykonawcze V8 i starsze oparte na interpreterze JavaScript Rhino firmy Mozilla.

Środowisko wykonawcze V8 obsługuje nowoczesną składnię i funkcje ECMAScript. Środowisko wykonawcze Rhino jest oparte na starszej wersji JavaScriptu 1.6 oraz kilku funkcjach z wersji 1.7 i 1.8. Możesz dowolnie wybrać środowisko wykonawcze, które ma być używane w skrypcie, ale zdecydowanie zalecamy użycie środowiska wykonawczego V8.

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

Korzystanie z autouzupełniania

Edytor skryptów udostępnia funkcję wspomagania treści (bardziej zwaną autouzupełnianiem), która ujawnia obiekty globalne, a także 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 zwróci klasę Apps Script. Na przykład:

  • Gdy wpiszesz pełną nazwę obiektu globalnego lub wybierzesz obiekt z autouzupełniania, a następnie wpiszesz . (kropkę), wyświetlą się wszystkie metody i wyliczenia dla tej klasy.
  • Jeśli wpiszesz kilka znaków, zobaczysz wszystkie prawidłowe sugestie, które zaczynają się od tych znaków.

Informacje o obiektach globalnych

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

Metody nawiązywania połączeń

Obiekty globalne niemal wszystkich wbudowanych i usług zaawansowanych zawierają metody zwracające dane lub klasę Apps Script. Skrypty wywołują metody w takim 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 metod w łańcuchu w jednym wierszu. Typy zwracanych funkcji są wyświetlane zarówno w autouzupełnianiu, jak i w dokumentacji referencyjnej metody. Na przykład metoda DocumentApp.create() zwraca Document, więc 2 poniższe 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 1 klasę podrzędną, do której nie można uzyskać dostępu z poziomu obiektu globalnego. Do konstruowania tych klas nie można używać słowa kluczowego new, tak jak w przypadku standardowych klas JavaScriptu, takich jak Date. Aby uzyskać dostęp do klasy podrzędnej, wystarczy wywołać metodę, która ją zwraca. Jeśli nie masz pewności, jak uzyskać dostęp do określonej klasy, otwórz stronę główną z dokumentacją referencyjną usługi i poszukaj metody, która zwraca odpowiednią klasę.

Obsługa interfejsów

Niektóre usługi obejmują specjalne klasy oznaczone w dokumentacji referencyjnej jako „interfejsy”. Są to klasy ogólne, używane jako typy zwracanych w przypadku metod, które nie mogą z wyprzedzeniem określić dokładnego typu. Na przykład metoda Usługa Document Body.getChild(childIndex) zwraca ogólny obiekt Element. Element to interfejs, który reprezentuje inną klasę, np. Paragraph lub Table. Obiekty interfejsu rzadko są używane same w sobie. Lepiej jest wywołać metodę taką jak Element.asParagraph(), by rzutować obiekt z powrotem do dokładnej klasy.

Praca z wyliczeniami

Większość usług zawiera kilka wyliczeń (typów) nazwanych wartości. Na przykład usługa Dysku używa wyliczeniowych Access i Permission do określania, którzy użytkownicy mają dostęp do pliku lub folderu. Prawie we wszystkich przypadkach uzyskujesz dostęp do tych wyliczeniowych 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);