단순 트리거

트리거를 사용하면 특정 이벤트, 문서를 열 때처럼 말이죠. 단순 트리거는 onOpen(e) 함수와 같이 Apps Script에 내장된 예약된 함수의 기능은 다음과 같습니다. 사용자가 Google Docs, Sheets, Slides 또는 Forms 파일을 열 때 실행됩니다. 설치 가능한 트리거는 추가 기능을 제공합니다. 단순한 트리거보다 기능이 더 효과적이지만 사용하기 전에 활성화해야 합니다. 둘 다 트리거되는 경우, Apps Script는 트리거된 함수에 정보가 포함된 이벤트 객체 이벤트가 발생한 맥락 정보를 보여줍니다.

시작하기

간단한 트리거를 사용하려면 다음 중 하나를 사용하는 함수를 만들면 됩니다. 예약된 함수 이름:

  • onOpen(e)는 사용자가 스프레드시트, 문서, 프레젠테이션 또는 양식을 만들 수 있습니다.
  • onInstall(e)는 사용자가 편집자 부가기능 Google Docs, Sheets, Slides 또는 Forms
  • onEdit(e)는 사용자가 스프레드시트의 값을 변경하면 실행됩니다.
  • onSelectionChange(e)는 사용자가 스프레드시트에서 선택사항을 변경하면 실행됩니다.
  • doGet(e)는 사용자가 웹 앱을 방문할 때 실행됩니다. 프로그램이 웹 앱에 HTTP GET 요청을 보내는 경우
  • doPost(e)는 프로그램이 웹 앱에 HTTP POST 요청을 보낼 때 실행됩니다.

위 함수 이름의 e 매개변수는 이벤트 객체를 함수를 사용하세요. 객체에는 사용할 수 있지만 이는 선택사항입니다.

제한사항

간단한 트리거는 사용자에게 다음을 요청하지 않고도 자동으로 실행되기 때문입니다. 여러 가지 제한사항이 적용됩니다.

  • 스크립트는 Google Sheets, Slides, Docs, Forms 파일 또는 다음 중 하나를 확장하는 부가기능 지원할 수 있습니다
  • 파일이 읽기 전용 (보기 또는 댓글 작성) 모드로 열린 경우에는 실행되지 않습니다.
  • 스크립트 실행 및 API 요청으로 인해 트리거가 실행되지 않습니다. 예를 들어 Range.setValue() 호출 를 입력해도 스프레드시트의 onEdit 트리거가 실행되지 않습니다.
  • 또한 액세스가 필요한 서비스승인이 필요하지 않습니다. 예를 들어 단순한 트리거는 이메일을 보낼 수 없습니다. Gmail 서비스에 승인이 필요하지만 단순한 트리거는 단어로 된 구문을 언어 서비스 - 익명.
  • 바인딩된 파일을 수정할 수 있지만 다른 파일에는 액세스할 수 없습니다. 승인이 필요하기 때문입니다.
  • 이러한 관리자는 현재 사용자의 신원을 확인할 수도 있고 확인하지 못할 수도 있습니다. GKE에 따라 복잡한 보안 제한의 집합.
  • 30초 이상 실행할 수 없습니다.
  • 특정 상황에서는 편집자 부가기능onOpen(e)을 실행합니다. 및 onEdit(e)개의 간단한 트리거가 몇 가지 추가적인 복잡성이 있습니다. 자세한 내용은 부가기능 승인 수명 주기 가이드를 참고하세요.
  • 단순 트리거에는 Apps Script 트리거가 적용됨 할당량 한도를 관리할 수 있습니다.

이러한 제한사항은 doGet(e) 또는 doPost(e)에는 적용되지 않습니다.

onOpen(e)

onOpen(e) 트리거는 사용자가 스프레드시트를 열면 자동으로 실행됩니다. 문서, 프레젠테이션 또는 양식을 제출해서는 안 됩니다. ( 양식에 응답할 때 트리거가 실행되지 않고 수정합니다.) onOpen(e)는 일반적으로 맞춤 메뉴 항목을 Google Sheets, Slides, Docs 또는 Forms를 탭합니다.

triggers/triggers.gs
/**
 * The event handler triggered when opening the spreadsheet.
 * @param {Event} e The onOpen event.
 * @see https://developers.google.com/apps-script/guides/triggers#onopene
 */
function onOpen(e) {
  // Add a custom menu to the spreadsheet.
  SpreadsheetApp.getUi() // Or DocumentApp, SlidesApp, or FormApp.
      .createMenu('Custom Menu')
      .addItem('First item', 'menuItem1')
      .addToUi();
}

onInstall(e)

onInstall(e) 트리거는 사용자가 앱을 설치할 때 자동으로 실행됩니다. 편집자 부가기능 Google Docs, Sheets, Slides 또는 Forms 사용자가 트리거가 실행되기 전에 Google 게시자 콘솔에서 부가기능을 Google Workspace Marketplace 있습니다. 참고: onInstall(e)님이 할 수 있는 작업에 몇 가지 제한사항이 있습니다. 자세히 알아보세요. 승인입니다. onInstall(e)의 가장 일반적인 용도는 onOpen(e)를 호출하여 맞춤 메뉴를 제공합니다. 부가기능이 설치되면 파일이 이미 열려 있으므로 따라서 파일을 다시 열지 않는 한 onOpen(e)는 자체적으로 실행되지 않습니다.

triggers/triggers.gs
/**
 * The event handler triggered when installing the add-on.
 * @param {Event} e The onInstall event.
 * @see https://developers.google.com/apps-script/guides/triggers#oninstalle
 */
function onInstall(e) {
  onOpen(e);
}

onEdit(e)

onEdit(e) 트리거는 사용자가 다음 값을 변경하면 자동으로 실행됩니다. 셀이라고 합니다. 대부분의 onEdit(e) 트리거는 이벤트 객체를 호출하여 적절하게 응답합니다. 예를 들어 아래의 onEdit(e) 함수는 마지막으로 수정한 시간을 기록합니다.

triggers/triggers.gs
/**
 * The event handler triggered when editing the spreadsheet.
 * @param {Event} e The onEdit event.
 * @see https://developers.google.com/apps-script/guides/triggers#onedite
 */
function onEdit(e) {
  // Set a comment on the edited cell to indicate when it was changed.
  const range = e.range;
  range.setNote('Last modified: ' + new Date());
}

onSelectionChange(e)

onSelectionChange(e) 트리거는 사용자가 스프레드시트입니다. 이 트리거를 활성화하려면 트리거가 추가되고 스프레드시트가 열릴 때마다 스프레드시트로 돌아갑니다.

선택 영역이 단시간 내에 여러 셀 사이를 이동하는 경우, 일부 셀이 선택되면 변경 이벤트는 지연 시간을 줄이기 위해 건너뛸 수 있습니다. 예를 들어 한 번에 여러 개의 변경은 2초 이내에 이루어지며, 첫 번째와 마지막 변경사항만 선택이 변경되면 onSelectionChange(e) 트리거가 활성화됩니다.

아래 예에서 빈 셀을 선택하면 onSelectionChange(e) 함수가 셀의 빨간색으로 변경합니다.

triggers/triggers.gs
/**
 * The event handler triggered when the selection changes in the spreadsheet.
 * @param {Event} e The onSelectionChange event.
 * @see https://developers.google.com/apps-script/guides/triggers#onselectionchangee
 */
function onSelectionChange(e) {
  // Set background to red if a single empty cell is selected.
  const range = e.range;
  if (range.getNumRows() === 1 &&
    range.getNumColumns() === 1 &&
    range.getCell(1, 1).getValue() === '') {
    range.setBackground('red');
  }
}

doGet(e)doPost(e)

doGet(e) 트리거는 사용자가 웹 앱 또는 프로그램에서 HTTP GET 요청을 전송 웹 앱에 연결할 수 있습니다 doPost(e) 프로그램이 HTTP POST 요청을 있습니다. 이러한 트리거는 웹 앱, HTML 서비스, 및 콘텐츠 서비스. doGet(e)doPost(e)에는 위에 나열된 제한사항이 적용되지 않습니다.

사용 가능한 트리거 유형

단순 트리거에 대한 제한사항으로 인해 요구사항을 충족하지 못하는 경우 설치 가능한 트리거를 할 수도 있습니다. 아래 표에는 사용할 수 있습니다. 예: Google Sheets, Slides, Forms, Docs는 모두 간단한 열기 트리거를 지원하지만 Sheets, Docs, Forms만 지원합니다. 실행할 수 있습니다

이벤트 단순 트리거 설치 가능한 트리거
열기
<ph type="x-smartling-placeholder">
</ph>
Sheets
<ph type="x-smartling-placeholder">
</ph>
슬라이드
<ph type="x-smartling-placeholder">
</ph>
설문지*
<ph type="x-smartling-placeholder">
</ph>
문서

function onOpen(e)

<ph type="x-smartling-placeholder">
</ph>
Sheets
<ph type="x-smartling-placeholder">
</ph>
설문지*
<ph type="x-smartling-placeholder">
</ph>
문서
수정
<ph type="x-smartling-placeholder">
</ph>
Sheets

function onEdit(e)

<ph type="x-smartling-placeholder">
</ph>
Sheets
선택 항목 변경
<ph type="x-smartling-placeholder">
</ph>
Sheets

function onSelectionChange(e)

설치
<ph type="x-smartling-placeholder">
</ph>
Sheets
<ph type="x-smartling-placeholder">
</ph>
슬라이드
<ph type="x-smartling-placeholder">
</ph>
설문지
<ph type="x-smartling-placeholder">
</ph>
문서

function onInstall(e)

변경
<ph type="x-smartling-placeholder">
</ph>
Sheets
양식 제출
<ph type="x-smartling-placeholder">
</ph>
Sheets
<ph type="x-smartling-placeholder">
</ph>
설문지
시간 기반 (시계)
<ph type="x-smartling-placeholder">
</ph>
Sheets
<ph type="x-smartling-placeholder">
</ph>
슬라이드
<ph type="x-smartling-placeholder">
</ph>
설문지
<ph type="x-smartling-placeholder">
</ph>
문서
<ph type="x-smartling-placeholder">
</ph>
독립형
가져오기
<ph type="x-smartling-placeholder">
</ph>
독립형

function doGet(e)

게시물
<ph type="x-smartling-placeholder">
</ph>
독립형

function doPost(e)

* 사용자가 응답하기가 아니라 편집자가 양식을 열어 수정할 때 응답해야 합니다.