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>매개변수
| 이름 | 유형 | 설명 | 
|---|---|---|
function | Function | 클라이언트 측 콜백 함수를 호출하여
  서버 측 함수에서 예외가 발생하면 실행됩니다. 
  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>매개변수
| 이름 | 유형 | 설명 | 
|---|---|---|
function | Function | 클라이언트 측 콜백 함수를 호출하여 서버 측 함수가 성공적으로 반환되면 실행됩니다. 서버의 반환 값이 함수를 첫 번째 인수로 사용하고 user 객체 (있는 경우) 두 번째 인수로 전달됨 | 
리턴
google.script.run: 이 '스크립트 실행기' 체이닝용
withUserObject(object)
성공 및 실패 핸들러에 두 번째 매개변수로 전달할 객체를 설정합니다. 이 "사용자는
  object" )와 혼동하지 마시기 바랍니다.
  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()" />
  </body>
</html>매개변수
| 이름 | 유형 | 설명 | 
|---|---|---|
object | Object | 두 번째 매개변수로 전달할 객체
  성공 및 실패 핸들러에 전달합니다. 사용자 객체는 서버로 전송되지 않으므로
  매개변수 및 반환 값에 대한 제한 사항이 적용됨
  서버 호출에 따라 달라집니다. 하지만 사용자 객체는 구성된 객체일 수 없습니다.
  new 연산자 사용 | 
리턴
google.script.run: 이 '스크립트 실행기' 체이닝용