Google Apps Script는 사용자 데이터, 다른 Google 시스템, 외부 시스템과 상호작용하기 위한 30개 이상의 기본 제공 서비스를 제공합니다. 이러한 서비스는
JavaScript의 표준
Math
객체와 유사한 전역 객체로 제공됩니다. 예를 들어 Math가 random()와 같은 메서드와 상수
PI와 같은 상수를 제공하는 것처럼 Apps Script의 스프레드시트
서비스는
openById(id)와 같은 메서드,
Range와 같은 클래스 (하위 객체),
DataValidationCriteria와 같은 열거형을 제공합니다.
Google Workspace 제품을 제어하는 서비스의 참고 문서는 이 사이트의 사이드바에 있는 '참고' 헤더 아래의 'Google Workspace 서비스' 섹션에 수집되어 있습니다. 유틸리티 서비스 (사용자 인터페이스 만들기, XML 파싱, 로그 데이터 작성 등)는 '스크립트 서비스' 섹션에 수집되어 있습니다.
최신 JavaScript 기능
Apps Script는 두 가지 JavaScript 런타임, 즉 최신 V8 런타임과 Mozilla's Rhino JavaScript interpreter 로 구동되는 이전 런타임을 지원합니다.
V8 런타임은 최신 ECMAScript 구문과 기능을 지원합니다. Rhino 런타임은 이전 JavaScript 1.6 표준과 1.7 및 1.8의 일부 기능을 기반으로 합니다. 스크립트와 함께 사용할 런타임을 선택하세요. V8 런타임을 사용하는 것이 좋습니다.
각 런타임은 기본 제공
및 고급 Google 서비스 외에도 스크립트에서 사용할 수 있는 JavaScript 클래스와 객체를 지원합니다. 스크립트는
Array,
Date,
RegExp,
등과 같은 일반적인 객체와,
Math 및
Object
전역 객체를 사용할 수 있습니다.
Apps Script 코드는 Google 서버에서 실행되므로 (HTML 서비스 페이지 제외) DOM 조작 또는
Window API와 같은 브라우저 기반 JavaScript 기능은 Apps Script에서 사용할 수 없습니다.
자동 완성
스크립트 편집기는 스크립트의 현재 컨텍스트에서 유효한 전역 객체와 메서드 및 열거형을 표시하는 '콘텐츠 지원' 기능(일반적으로 '자동 완성'이라고 함)을 제공합니다. Apps Script 클래스를 반환하는 전역 객체, 열거형 또는 메서드 호출 뒤에 마침표를 입력하면 자동 완성 추천이 자동으로 표시됩니다. 예를 들면 다음과 같습니다.
- 전역 객체의 전체 이름을 입력하거나 자동 완성에서 하나를 선택한 후
.(마침표)을 입력하면 해당 클래스의 모든 메서드와 열거형이 표시됩니다. - 몇 글자를 입력하면 해당 글자로 시작하는 모든 유효한 추천이 표시됩니다.
전역 객체
각 서비스는 하나 이상의 전역 (최상위) 객체를 제공합니다. 예를 들어
Gmail 서비스는
GmailApp 객체에서만 액세스할 수 있습니다. 일부 서비스는 여러 전역 객체를 제공합니다. 예를 들어 기본 서비스에는 Browser, Logger, MimeType, Session의 4가지 전역 객체가 포함되어 있습니다.
메서드
거의 모든 기본 제공 또는 고급 서비스의 전역 객체에는 데이터 또는 Apps Script 클래스를 반환하는 메서드가 포함되어 있습니다. 스크립트는 다음과 같은 형식으로 메서드를 호출합니다.
GlobalObjectName.methodName(argument1, argument2, ..., argumentN);
예를 들어 스크립트는 다음과 같이 Gmail 서비스의
sendEmail(recipient, subject, body)
메서드를 호출하여 이메일을 보낼 수 있습니다.
GmailApp.sendEmail('claire@example.com', 'Subject line', 'This is the body.');
메서드가 다른 Apps Script 클래스를 반환하는 경우 한 줄에 메서드 호출을 연결합니다. (반환 유형은 자동 완성 및 메서드의 참고 문서에 모두 표시됩니다.) 예를 들어 메서드
DocumentApp.create()
는 Document를 반환하므로
다음 두 코드 섹션은 동일합니다.
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.');
하위 클래스
모든 서비스에는 전역 객체로 최상위 수준에서 액세스할 수 없는 하나 이상의 하위 클래스가 포함되어 있습니다. `Date`와 같은 표준 JavaScript 클래스와 마찬가지로 `new` 키워드를 사용하여 이러한 클래스를 생성할 수도 없습니다.
하위 클래스에 액세스하려면 하위 클래스를 반환하는 메서드를 호출해야 합니다. 특정 클래스에 액세스하는 방법을 잘 모르는 경우 서비스의 참고 문서의 루트 페이지를 방문하세요. 서비스의 클래스와 클래스를 반환하는 메서드가 나열되어 있습니다.
인터페이스
일부 서비스에는 참고 문서에서 '인터페이스'로 라벨이 지정된 클래스가 포함되어 있습니다. 이러한 클래스는 정확한 유형을 미리 결정할 수 없는 메서드의 반환 유형으로 사용되는 일반 클래스입니다. 예를 들어
문서 서비스 메서드
Body.getChild(childIndex)
는 일반 Element 객체를 반환합니다.
Element 인터페이스는
Paragraph 또는
Table과 같은 다른 클래스를 나타냅니다. 인터페이스 객체는 자체적으로 유용한 경우가 거의 없습니다. 대신
와 같은 메서드를 호출하여 객체를 특정 클래스로 다시 변환합니다.Element.asParagraph()
열거형
대부분의 서비스에는 이름이 지정된 값의 열거형 (열거된 유형)이 포함되어 있습니다. 예를 들어 Google Drive 서비스는
Access 및
Permission 열거형을 사용하여 파일 또는 폴더에 액세스할 수 있는 사용자를 결정합니다. 대부분의 경우 다음 예와 같이 전역 객체에서 이러한 열거형에 액세스합니다.
// 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);