클래스 google.script.run (클라이언트 측 API)

google.script.run는 서버 측 Apps Script를 호출할 수 있는 HTML 서비스 페이지 함수와 비교합니다. 클라이언트 측에서 Google Docs, Sheets, Forms의 대화상자나 사이드바와 상호작용하기 google.script.host를 사용합니다. 자세한 내용은 서버 함수와의 통신 가이드 할 수 있습니다.

메서드

메서드반환 유형간략한 설명
myFunction(...) (모든 서버 측 함수) void 해당 이름으로 서버 측 Apps Script 기능을 실행합니다.
withFailureHandler(function) google.script.run 서버 측 함수에서 예외가 발생하면 실행되도록 콜백 함수를 설정합니다.
withSuccessHandler(function) google.script.run 서버 측 함수가 성공적으로 반환되면 실행되도록 콜백 함수를 설정합니다.
withUserObject(object) google.script.run 성공 및 실패 핸들러에 두 번째 매개변수로 전달할 객체를 설정합니다.

자세한 문서

myFunction(...) (모든 서버 측 함수)

해당 이름으로 서버 측 Apps Script 기능을 실행합니다.

Code.gs

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

function doSomething() {
  Logger.log('I was called!');
}

index.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
      google.script.run.doSomething();
    </script>
  </head>
  <body>
  </body>
</html>

매개변수

이름유형설명
...대부분의 유형은 유효하지만 Date, Function, 또는 form 외의 DOM 요소 설명 보기법적 매개변수는 자바스크립트임 Number, Boolean, String 또는 null를 비롯하여 프리미티브로 구성된 JavaScript 객체 및 배열, 객체, 배열 등이 있습니다 페이지 내의 form 요소도 매개변수로 사용할 수 있지만 함수의 유일한 매개변수여야 합니다. Date, Function, form 옆의 DOM 요소 등 객체나 배열 내의 금지된 유형을 포함하여 금지된 유형입니다. 원형을 생성하는 객체 참조도 실패하고 배열 내의 정의되지 않은 필드는 null이 됩니다. 참고: 서버에 전달된 객체는 원본의 사본이 됩니다. 서버 함수가 객체의 속성을 변경하는 경우 클라이언트의 속성은 영향을 받지 않습니다.

리턴

void: 이 메서드는 비동기식이며 직접 반환되지 않습니다. 하지만 서버 측 함수는 success 핸들러 또한 반환 유형에는 매개변수 유형과 동일한 제한사항을 따릅니다. 단, form 요소가 유효한 반환 유형


withFailureHandler(function)

서버 측 함수에서 예외가 발생하면 실행되도록 콜백 함수를 설정합니다. 이 Error 객체가 함수에 전달되면 첫 번째 인수로 user 객체 (있는 경우)가 두 번째 인수로 전달됩니다. 제외 실패 핸들러를 사용하면 실패가 JavaScript 콘솔에 기록됩니다. 재정의하려면 다음을 호출합니다. withFailureHandler(null)를 호출하거나, 아무것도 하지 않는 실패 핸들러를 제공합니다.

Code.gs

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

function getUnreadEmails() {
  // 'got' instead of 'get' will throw an error.
  return GmailApp.gotInboxUnreadCount();
}

index.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
      function onFailure(error) {
        var div = document.getElementById('output');
        div.innerHTML = "ERROR: " + error.message;
      }

      google.script.run.withFailureHandler(onFailure)
          .getUnreadEmails();
    </script>
  </head>
  <body>
    <div id="output"></div>
  </body>
</html>

매개변수

이름유형설명
functionFunction클라이언트 측 콜백 함수를 호출하여 서버 측 함수에서 예외가 발생하면 실행됩니다. Error 객체가 함수에 전달되면 첫 번째 인수로 사용자 객체 (있는 경우)가 두 번째 인수로 전달됩니다.

리턴

google.script.run: 이 '스크립트 실행기' 체이닝용


withSuccessHandler(function)

서버 측 함수가 성공적으로 반환되면 실행되도록 콜백 함수를 설정합니다. 서버의 반환 값이 함수에 첫 번째 인수로 전달되고, user 객체 (있는 경우)가 두 번째 인수로 전달됩니다.

Code.gs

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

function getUnreadEmails() {
  return GmailApp.getInboxUnreadCount();
}

index.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
      function onSuccess(numUnread) {
        var div = document.getElementById('output');
        div.innerHTML = 'You have ' + numUnread
            + ' unread messages in your Gmail inbox.';
      }

      google.script.run.withSuccessHandler(onSuccess)
          .getUnreadEmails();
    </script>
  </head>
  <body>
    <div id="output"></div>
  </body>
</html>

매개변수

이름유형설명
functionFunction클라이언트 측 콜백 함수를 호출하여 서버 측 함수가 성공적으로 반환되면 실행됩니다. 서버의 반환 값이 함수를 첫 번째 인수로 사용하고 user 객체 (있는 경우) 두 번째 인수로 전달됨

리턴

google.script.run: 이 '스크립트 실행기' 체이닝용


withUserObject(object)

성공 및 실패 핸들러에 두 번째 매개변수로 전달할 객체를 설정합니다. 이 "사용자는 object&quot; )와 혼동하지 마시기 바랍니다. User 클래스: 콜백을 허용합니다. 함수는 클라이언트가 서버에 접속한 컨텍스트에 응답합니다. 사용자 객체는 서버에 전송되지 않는 경우 매개변수 및 반환에 대한 제한이 적용되지 않습니다. 서버 호출 값을 제공해야 합니다. 하지만 사용자 객체는 객체가 될 수 없습니다. new 연산자로 구성됩니다.

Code.gs

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

function getEmail() {
  return Session.getActiveUser().getEmail();
}

index.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
      function updateButton(email, button) {
        button.value = 'Clicked by ' + email;
      }
    </script>
  </head>
  <body>
    <input type="button" value="Not Clicked"
      onclick="google.script.run
          .withSuccessHandler(updateButton)
          .withUserObject(this)
          .getEmail()" />
    <input type="button" value="Not Clicked"
      onclick="google.script.run
          .withSuccessHandler(updateButton)
          .withUserObject(this)
          .getEmail()" />
  </body>
</html>

매개변수

이름유형설명
objectObject두 번째 매개변수로 전달할 객체 성공 및 실패 핸들러에 전달합니다. 사용자 객체는 서버로 전송되지 않으므로 매개변수 및 반환 값에 대한 제한 사항이 적용됨 서버 호출에 따라 달라집니다. 하지만 사용자 객체는 구성된 객체일 수 없습니다. new 연산자 사용

리턴

google.script.run: 이 '스크립트 실행기' 체이닝용