단순 트리거와 설치 가능한 트리거를 사용하면 특정 이벤트가 발생할 때 Google Apps Script에서 함수를 자동으로 실행할 수 있습니다. 트리거가 실행되면 Apps Script는 함수에 이벤트 객체를 인수로 전달합니다(일반적으로 e). 이벤트 객체에는 트리거가 실행되도록 한 컨텍스트에 관한 정보가 포함됩니다. 예를 들어 다음 샘플 코드는 이벤트 객체를 사용하여 수정된 셀을 확인하는 Google Sheets 스크립트의 간단한 onEdit(e) 트리거를 보여줍니다.
function onEdit(e){
// Set a comment on the edited cell to indicate when it was changed.
var range = e.range;
range.setNote('Last modified: ' + new Date());
}
이 페이지에서는 다양한 유형의 트리거에 대한 이벤트 객체의 필드를 설명합니다.
설치 가능한 트리거에 의해 생성된 이벤트에는 이벤트를 생성한 트리거를 식별하는 triggerUid가 포함됩니다. 이는 설치 가능한 트리거가 여러 개인 스크립트에 도움이 됩니다.
Google Sheets 이벤트
다양한 Google Sheets 전용 트리거를 사용하면 스크립트가 스프레드시트에서 사용자의 작업에 응답할 수 있습니다.
열기(간단하고 설치 가능) |
|
|---|---|
authMode |
LIMITED |
source |
스크립트가 바인드된 Sheets 파일을 나타내는 Spreadsheet |
triggerUid |
이 이벤트를 생성한 트리거의 ID입니다 (설치 가능한 트리거만 해당). 4034124084959907503 |
user |
활성 사용자를 나타내는 amin@example.com |
변경(설치 가능) |
|
|---|---|
authMode |
FULL |
changeType |
변경 유형 ( INSERT_ROW |
source |
스크립트가 바인드된 Sheets 파일을 나타내는
Spreadsheet |
triggerUid |
이 이벤트를 생성한 트리거의 ID입니다. 4034124084959907503 |
user |
활성 사용자를 나타내는 amin@example.com |
수정(간단하고 설치 가능) |
|
|---|---|
authMode |
LIMITED |
oldValue |
수정 전 셀 값입니다(있는 경우). 수정된 범위가 단일 셀인 경우에만 사용할 수 있습니다. 셀에 이전 콘텐츠가 없으면 정의되지 않습니다. 1234 |
range |
수정된 셀 또는 셀 범위를 나타내는 Range |
source |
스크립트가 바인드된 Sheets 파일을 나타내는 Spreadsheet |
triggerUid |
이 이벤트를 생성한 트리거의 ID입니다 (설치 가능한 트리거만 해당). 4034124084959907503 |
user |
활성 사용자를 나타내는 amin@example.com |
value |
수정 후의 새 셀 값입니다. 수정된 범위가 단일 셀인 경우에만 사용할 수 있습니다. 10 |
양식 제출(설치 가능) |
|
|---|---|
authMode |
FULL |
namedValues |
양식 제출의 질문 이름과 값을 포함하는 객체입니다. {
'First Name': ['Jane'],
'Timestamp': ['6/7/2015 20:54:13'],
'Last Name': ['Doe']
} |
range |
수정된 셀 또는 셀 범위를 나타내는 Range |
triggerUid |
이 이벤트를 생성한 트리거의 ID입니다. 4034124084959907503 |
values |
스프레드시트에 표시되는 순서와 동일한 순서로 값이 포함된 배열입니다. ['2015/05/04 15:00', 'amin@example.com', 'Bob', '27', 'Bill', '28', 'Susan', '25'] |
Google Docs 이벤트
트리거를 사용하면 사용자가 문서를 열 때 Docs가 응답할 수 있습니다.
열기(간단하고 설치 가능) |
|
|---|---|
authMode |
LIMITED |
source |
스크립트가 바인드된 Docs 파일을 나타내는 Document |
triggerUid |
이 이벤트를 생성한 트리거의 ID입니다 (설치 가능한 트리거만 해당). 4034124084959907503 |
user |
활성 사용자를 나타내는 amin@example.com |
Google Slides 이벤트
트리거를 사용하면 사용자가 프레젠테이션을 열 때 슬라이드가 응답할 수 있습니다.
열기(simple) |
|
|---|---|
authMode |
LIMITED |
source |
스크립트가 바인드된 Slides 파일을 나타내는 Presentation |
user |
활성 사용자를 나타내는 amin@example.com |
Google Forms 이벤트
양식 전용 트리거를 사용하면 사용자가 양식을 수정하거나 응답을 제출할 때 스크립트가 응답할 수 있습니다.
열기* (간단하고 설치 가능) |
|
|---|---|
authMode |
LIMITED |
source |
스크립트가 바인드된 Forms 파일을 나타내는 Form |
triggerUid |
이 이벤트를 생성한 트리거의 ID입니다 (설치 가능한 트리거만 해당). 4034124084959907503 |
user |
활성 사용자를 나타내는 amin@example.com |
* 이 이벤트는 사용자가 응답하기 위해 양식을 열 때가 아니라 편집자가 양식을 수정하기 위해 열 때 발생합니다.
양식 제출(설치 가능) |
|
|---|---|
authMode |
FULL |
response |
전체 양식에 대한 사용자의 응답을 나타내는 FormResponse |
source |
스크립트가 바인드된 Forms 파일을 나타내는 Form |
triggerUid |
이 이벤트를 생성한 트리거의 ID입니다. 4034124084959907503 |
Google Calendar 일정
Google Calendar 트리거는 사용자의 캘린더 일정이 업데이트(생성, 수정 또는 삭제)될 때 실행됩니다.
이러한 트리거는 어떤 이벤트가 변경되었는지 또는 어떻게 변경되었는지 알려주지 않습니다. 대신 캘린더의 최근 변경사항을 적용하기 위해 코드가 증분 동기화 작업을 실행해야 한다고 나타냅니다. 이 절차에 관한 자세한 설명은 Calendar API의 리소스 동기화 가이드를 참고하세요.
Apps Script에서 Calendar와 동기화하려면 다음 단계를 따르세요.
- 스크립트 프로젝트에 Calendar 고급 서비스를 사용 설정합니다. 이 워크플로에는 내장 캘린더 서비스가 적합하지 않습니다.
- 동기화할 캘린더를 결정합니다. 각 캘린더에 대해 Calendar 고급 서비스의 Events.list() 메서드를 사용하여 초기 동기화 작업을 실행합니다.
- 초기 동기화는 해당 캘린더의
nextSyncToken를 반환합니다. 나중에 사용할 수 있도록 이 토큰을 저장합니다. - 캘린더 일정 변경을 나타내는 Apps Script
EventUpdated트리거가 실행되면 저장된nextSyncToken를 사용하여 영향을 받는 캘린더에 대해 증분 동기화를 실행합니다. 이는 기본적으로 또 다른 Events.list() 요청이지만nextSyncToken를 제공하면 마지막 동기화 이후 변경된 이벤트로만 응답이 제한됩니다. - 동기화 응답을 검사하여 업데이트된 이벤트를 파악하고 코드에서 적절하게 응답하도록 합니다. 예를 들어 변경사항을 기록하거나, 스프레드시트를 업데이트하거나, 이메일 알림을 보내거나, 기타 작업을 실행할 수 있습니다.
- 증분 동기화 요청에서 반환된 값으로 해당 캘린더에 저장된
nextSyncToken를 업데이트합니다. 이렇게 하면 다음 동기화 작업에서 최신 변경사항만 반환됩니다.
서버에서 동기화 토큰을 무효화하여 410 오류가 발생하는 경우가 있습니다. 이 경우 코드는 전체 동기화를 실행하고 해당 캘린더의 저장된 동기화 데이터와 토큰을 모두 대체해야 합니다.
EventUpdated(설치 가능) |
|
|---|---|
authMode |
FULL |
calendarId |
이벤트 업데이트가 발생한 캘린더의 문자열 ID입니다. susan@example.com |
triggerUid |
이 이벤트를 생성한 트리거의 ID입니다. 4034124084959907503 |
Google Workspace 부가기능 이벤트
onInstall() 트리거는 사용자가 애드온을 설치할 때 자동으로 실행됩니다.
설치(simple) |
|
|---|---|
authMode |
FULL |
Google Chat 앱 이벤트
Google Chat의 이벤트 객체에 관해 알아보려면 Google Chat 앱과의 상호작용 수신 및 응답을 참고하세요.
시간 기반 이벤트
시간 기반 트리거(시계 트리거라고도 함)를 사용하면 특정 시간에 또는 반복되는 간격으로 스크립트를 실행할 수 있습니다.
| 시간 기반 (설치 가능) | |
|---|---|
authMode |
FULL |
day-of-month |
이 속성 이름에는 대시가 포함되어 있으므로 점 표기법이 아닌 31 |
day-of-week |
이 속성 이름에는 대시가 포함되어 있으므로 점 표기법이 아닌 7 |
hour |
23 |
minute |
59 |
month |
12 |
second |
59 |
timezone |
시간대입니다. UTC |
triggerUid |
이 이벤트를 생성한 트리거의 ID입니다. 4034124084959907503 |
week-of-year |
이 속성 이름에는 대시가 포함되어 있으므로 점 표기법이 아닌 52 |
year |
연도입니다. 2015 |