간단한 트리거 및 설치 가능한 트리거를 사용하면 특정 이벤트가 발생할 때 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());
}
이 페이지에서는 다양한 유형의 트리거에 관한 이벤트 객체의 필드를 자세히 설명합니다.
Google Sheets 이벤트
다양한 Google Sheets용 트리거를 사용하면 스크립트가 스프레드시트에서 사용자의 작업에 응답할 수 있습니다.
열기(간단하고 설치 가능) |
|
---|---|
authMode |
LIMITED |
source |
스크립트가 바인딩된 Google Sheets 파일을 나타내는 Spreadsheet |
triggerUid |
이 이벤트를 생성한 트리거의 ID입니다 (설치 가능한 트리거만 해당). 4034124084959907503 |
user |
활성 사용자를 나타내는 amin@example.com |
변경(설치 가능) |
|
---|---|
authMode |
FULL |
changeType |
변경 유형 ( INSERT_ROW |
source |
스크립트가 바인딩된 Google Sheets 파일을 나타내는
Spreadsheet |
triggerUid |
이 이벤트를 생성한 트리거의 ID입니다. 4034124084959907503 |
user |
활성 사용자를 나타내는 amin@example.com |
수정(간단하고 설치 가능) |
|
---|---|
authMode |
LIMITED |
oldValue |
수정 전 셀 값입니다(있는 경우). 수정된 범위가 단일 셀인 경우에만 사용할 수 있습니다. 셀에 이전 콘텐츠가 없으면 정의되지 않습니다. 1234 |
range |
수정된 셀 또는 셀 범위를 나타내는 Range |
source |
스크립트가 바인딩된 Google 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 이벤트
트리거를 사용하면 사용자가 문서를 열 때 Google Docs가 응답할 수 있습니다.
열기(간단하고 설치 가능) |
|
---|---|
authMode |
LIMITED |
source |
스크립트가 바인딩된 Google Docs 파일을 나타내는 Document |
triggerUid |
이 이벤트를 생성한 트리거의 ID입니다 (설치 가능한 트리거만 해당). 4034124084959907503 |
user |
활성 사용자를 나타내는 amin@example.com |
Google Slides 이벤트
트리거를 사용하면 사용자가 프레젠테이션을 열 때 Google Slides가 응답할 수 있습니다.
열기(간단함) |
|
---|---|
authMode |
LIMITED |
source |
스크립트가 바인딩된 Google Slides 파일을 나타내는 Presentation |
user |
활성 사용자를 나타내는 amin@example.com |
Google Forms 이벤트
Google Forms용 트리거를 사용하면 사용자가 양식을 수정하거나 응답을 제출할 때 스크립트가 응답할 수 있습니다.
열기* (간단하고 설치 가능) |
|
---|---|
authMode |
LIMITED |
source |
스크립트가 바인딩된 Google Forms 파일을 나타내는 Form |
triggerUid |
이 이벤트를 생성한 트리거의 ID입니다 (설치 가능한 트리거만 해당). 4034124084959907503 |
user |
활성 사용자를 나타내는 amin@example.com |
* 이 이벤트는 사용자가 응답하기 위해 양식을 열 때가 아니라 편집자가 양식을 열어 수정할 때 발생합니다.
양식 제출(설치 가능) |
|
---|---|
authMode |
FULL |
response |
양식 전체에 대한 사용자의 응답을 나타내는 FormResponse |
source |
스크립트가 바인딩된 Google Forms 파일을 나타내는 Form |
triggerUid |
이 이벤트를 생성한 트리거의 ID입니다. 4034124084959907503 |
Google Calendar 일정
캘린더 트리거는 사용자의 캘린더 일정이 업데이트될 때 (생성, 수정 또는 삭제) 실행됩니다.
이러한 트리거는 어떤 이벤트가 변경되었는지 또는 어떻게 변경되었는지 알려주지 않습니다. 대신 코드에서 증분 동기화 작업을 실행하여 캘린더의 최근 변경사항을 가져와야 함을 나타냅니다. 이 절차에 관한 자세한 내용은 Calendar API의 리소스 동기화 가이드를 참고하세요.
Apps Script에서 Calendar와 동기화하려면 다음 단계를 따르세요.
- 스크립트 프로젝트에 Calendar 고급 서비스를 사용 설정합니다. 내장된 Calendar 서비스는 이 워크플로에 충분하지 않습니다.
- 동기화할 캘린더를 결정합니다. 이러한 각 캘린더에 대해 캘린더 고급 서비스의 Events.list() 메서드를 사용하여 초기 동기화 작업을 실행합니다.
- 초기 동기화의 결과는 해당 캘린더의
nextSyncToken
를 반환합니다. 나중에 사용할 수 있도록 이 토큰을 저장합니다. - 캘린더 일정 변경을 나타내는 Apps Script
EventUpdated
트리거가 실행되면 저장된nextSyncToken
를 사용하여 영향을 받는 캘린더의 증분 동기화를 실행합니다. 이는 본질적으로 다른 Events.list() 요청이지만nextSyncToken
를 제공하면 응답이 마지막 동기화 이후 변경된 이벤트로만 제한됩니다. - 동기화의 응답을 검사하여 업데이트된 이벤트를 확인하고 코드가 적절하게 응답하도록 합니다. 예를 들어 변경사항을 기록하거나, 스프레드시트를 업데이트하거나, 이메일 알림을 보내거나, 다른 작업을 실행할 수 있습니다.
- 해당 캘린더에 저장한
nextSyncToken
를 증분 동기화 요청에서 반환한 값으로 업데이트합니다. 이렇게 하면 다음 동기화 작업에서 가장 최근 변경사항만 반환됩니다.
EventUpdated(설치 가능) |
|
---|---|
authMode |
FULL |
calendarId |
이벤트 업데이트가 발생한 캘린더의 문자열 ID입니다. susan@example.com |
triggerUid |
이 이벤트를 생성한 트리거의 ID입니다. 4034124084959907503 |
Google Workspace 부가기능 이벤트
onInstall()
트리거는 사용자가 부가기능을 설치할 때 자동으로 실행됩니다.
설치(간단함) |
|
---|---|
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 |