Wbudowane usługi Google

Google Apps Script udostępnia ponad 30 wbudowanych usług do interakcji z danymi użytkownika, innymi systemami Google i systemami zewnętrznymi. Te usługi są udostępniane jako obiekty globalne podobne do standardowego obiektu Math w JavaScript. Podobnie jak Math udostępnia metody takie jak random() i stałe takie jak PI, usługa Arkusz kalkulacyjny w Apps Script udostępnia metody takie jak openById(id), klasy (obiekty podrzędne) takie jak Range i enumeracje takie jak DataValidationCriteria.

Dokumentacja referencyjna usług, które kontrolują produkty , jest zebrana w sekcji „ Usługi” pod nagłówkiem „Dokumentacja” w sekcji bocznej tej witryny. Usługi pomocnicze (np. do tworzenia interfejsów użytkownika, analizowania kodu XML lub zapisywania danych dziennika) są zbierane w sekcji „Usługi skryptu”.

Nowoczesne funkcje JavaScriptu

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

Środowisko wykonawcze V8 obsługuje nowoczesną składnię i funkcje ECMAScript. Środowisko wykonawcze Rhino jest oparte na starszej normie JavaScript 1.6, a także kilku funkcjach z wersji 1.71.8. Możesz dowolnie wybrać środowisko wykonawcze, którego chcesz użyć ze skryptem, ale zdecydowanie zalecamy użycie środowiska wykonawczego V8.

Każde środowisko uruchomieniowe obsługuje klasy i obiekty JavaScript dostępne dla skryptu, a także wbudowane zaawansowane usługi Google. Twoje skrypty mogą używać typowych obiektów, takich jak Array, Date, RegExppodobnych, a także obiektów globalnych MathObject.

Korzystanie z autouzupełniania

Edytor skryptów udostępnia funkcję „pomocy w tworzeniu treści”, która jest często nazywana „autouzupełnianiem”. Umożliwia ona wyświetlanie obiektów globalnych oraz metod i typów enumeracji, które są ważne w bieżącym kontekście skryptu. Sugestie uzupełniania automatycznie wyświetlają się, gdy wpiszesz kropkę po wywołaniu obiektu globalnego, typu enumeracji lub metody, które zwracają klasę Apps Script. Na przykład:

  • Jeśli wpiszesz pełną nazwę obiektu globalnego lub wybierzesz go z autouzupełniania, a potem wpiszesz . (kropkę), zobaczysz wszystkie metody i enumeracje dla tej klasy.
  • Jeśli wpiszesz kilka znaków, zobaczysz wszystkie prawidłowe sugestie, które się na nie zaczynają.

Obiekty globalne

Każda usługa udostępnia co najmniej 1 obiekt globalny (na najwyższym poziomie). Na przykład dostęp do usługi Gmail mają tylko obiekty GmailApp. Niektóre usługi udostępniają wiele obiektów globalnych. Na przykład usługa Base service zawiera 4 obiekty globalne: Browser, Logger, MimeType i Session.

Wywoływanie metod

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

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

Skrypt może na przykład 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 zwracanych wartości są widoczne zarówno w autouzupełnianiu, jak i w dokumentacji metody). Na przykład metoda DocumentApp.create() zwraca Document, więc te 2 sekcje kodu są równoważne:

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

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

Otwieranie zajęć podrzędnych

Każda usługa zawiera co najmniej jedną klasę podrzędną, do której nie można uzyskać dostępu z poziomu najwyższego, tak jak w przypadku obiektu globalnego. Nie możesz używać słowa kluczowego new do tworzenia tych klas, tak jak w przypadku standardowych klas JavaScript, takich jak Date; możesz uzyskać dostęp do klasy podrzędnej 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ą dokumentacji referencyjnej usługi i poszukaj metody, która zwraca odpowiednią klasę.

Praca z interfejsami

Kilka usług zawiera specjalne klasy opisane w dokumentacji referencyjnej jako „interfejsy”. Są to ogólne klasy używane jako typy zwracane w metodach, które nie mogą z góry określić dokładnego typu. Na przykład metoda Document serviceBody.getChild(childIndex) zwraca ogólny obiekt Element. Element to interfejs reprezentujący inną klasę, prawdopodobnie Paragraph lub Table. Obiekty interfejsu rzadko są przydatne same w sobie. Zamiast tego zwykle wywołujesz metodę, taką jak Element.asParagraph(), aby zamienić obiekt z powrotem w określoną klasę.

Praca z typami wyliczeniowymi

Większość usług zawiera kilka typów wyliczeniowych (wyliczanych) z nazwanymi wartościami. Na przykład usługa Dysk używa enumeracji Access i Permission, aby określić, którzy użytkownicy mają dostęp do pliku lub folderu. W prawie wszystkich przypadkach te typy enumeracji są dostępne 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  users.)
var folder = DriveApp.createFolder('Shared Folder');
folder.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT);