간단한 트리거와 설치 가능한 트리거를 사용하면 특정 이벤트가 발생할 때 Apps Script에서 함수를 자동으로 실행할 수 있습니다. 트리거가 실행되면 Apps Script는 함수에 이벤트 객체(일반적으로 e
라고 함)를 인수로 전달합니다. 이벤트 객체에는 트리거를 실행한 컨텍스트에 대한 정보가 포함됩니다. 예를 들어 아래 샘플 코드는 이벤트 객체를 사용하여 수정된 셀을 확인하는 Google 스프레드시트 스크립트의 간단한 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 스프레드시트 관련 트리거를 통해 스크립트는 스프레드시트에서 사용자의 작업에 응답할 수 있습니다.
개방형(간단하고 설치 가능) |
|
---|---|
authMode |
LIMITED |
source |
스크립트가 바인딩된 Google Sheets 파일을 나타내는 Spreadsheet |
triggerUid |
이 이벤트를 생성한 트리거의 ID입니다 (설치 가능한 트리거만 해당). 4034124084959907503 |
user |
amin@example.com |
변경(설치 가능) |
|
---|---|
authMode |
FULL |
changeType |
변경 유형 ( INSERT_ROW |
source |
스크립트가 바인딩된 Google 스프레드시트 파일을 나타내는
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 고급 서비스를 사용 설정합니다. 기본 제공되는 캘린더 서비스로는 이 워크플로에 충분하지 않습니다.
- 동기화할 캘린더를 결정합니다. 이러한 각 캘린더에 대해 캘린더 고급 서비스의 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 |