Class google.script.run (API sisi klien)

google.script.run adalah JavaScript API sisi klien asinkron yang tersedia di halaman layanan HTML yang dapat memanggil fungsi Apps Script sisi server. Untuk berinteraksi dengan dialog atau sidebar di Google Dokumen, Spreadsheet, atau Formulir dari kode sisi klien, gunakan google.script.host. Untuk mengetahui informasi lebih lanjut, lihat panduan berkomunikasi dengan fungsi server dalam layanan HTML.

Metode

MetodeJenis hasil yang ditampilkanDeskripsi singkat
myFunction(...) (fungsi sisi server apa pun) void Menjalankan fungsi Apps Script sisi server dengan nama yang sesuai.
withFailureHandler(function) google.script.run Menetapkan fungsi callback yang akan dijalankan jika fungsi sisi server menampilkan pengecualian.
withSuccessHandler(function) google.script.run Menetapkan fungsi callback yang akan dijalankan jika fungsi sisi server berhasil ditampilkan.
withUserObject(object) google.script.run Menyetel objek yang akan diteruskan sebagai parameter kedua ke pengendali berhasil dan gagal.

Dokumentasi mendetail

myFunction(...) (fungsi sisi server apa pun)

Menjalankan fungsi Apps Script sisi server dengan nama yang sesuai.

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>

Parameter

NamaJenisDeskripsi
...Sebagian besar jenis bersifat legal, tetapi bukan elemen Date, Function, atau DOM selain form; lihat deskripsiParameter hukum adalah primitif JavaScript seperti Number, Boolean, String, atau null, serta objek dan array JavaScript yang terdiri dari primitif, objek, dan array. Elemen form di dalam halaman juga sah sebagai parameter, tetapi harus menjadi satu-satunya parameter fungsi. Permintaan akan gagal jika Anda mencoba meneruskan Date, Function, elemen DOM selain form, atau jenis yang dilarang lainnya, termasuk jenis yang dilarang di dalam objek atau array. Objek yang membuat referensi melingkar juga akan gagal, dan kolom yang tidak ditentukan dalam array akan menjadi null. Perhatikan bahwa objek yang diteruskan ke server akan menjadi salinan aslinya. Jika fungsi server menerima objek dan mengubah propertinya, properti pada klien tidak akan terpengaruh.

Return

void — metode ini asinkron dan tidak kembali secara langsung; tetapi, fungsi sisi server dapat menampilkan nilai ke klien sebagai parameter yang diteruskan ke pengendali sukses. Selain itu, jenis nilai yang ditampilkan tunduk pada pembatasan yang sama seperti jenis parameter, hanya saja elemen form bukan jenis nilai yang ditampilkan yang sah


withFailureHandler(function)

Menetapkan fungsi callback yang akan dijalankan jika fungsi sisi server menampilkan pengecualian. Objek Error diteruskan ke fungsi sebagai argumen pertama, dan objek pengguna (jika ada) akan diteruskan sebagai argumen kedua. Tanpa pengendali kegagalan, kegagalan akan dicatat ke konsol JavaScript. Untuk menggantinya, panggil withFailureHandler(null) atau berikan pengendali kegagalan yang tidak melakukan apa pun.

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>

Parameter

NamaJenisDeskripsi
functionFunctionfungsi callback sisi klien yang akan dijalankan jika fungsi sisi server menampilkan pengecualian; objek Error diteruskan ke fungsi sebagai argumen pertama, dan objek pengguna (jika ada) diteruskan sebagai argumen kedua

Return

google.script.run — "runner skrip" ini, untuk perantaian


withSuccessHandler(function)

Menetapkan fungsi callback yang akan dijalankan jika fungsi sisi server berhasil ditampilkan. Nilai yang ditampilkan server diteruskan ke fungsi sebagai argumen pertama, dan objek pengguna (jika ada) diteruskan sebagai argumen kedua.

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>

Parameter

NamaJenisDeskripsi
functionFunctionfungsi callback sisi klien yang akan dijalankan jika fungsi sisi server berhasil ditampilkan; nilai kembali server diteruskan ke fungsi sebagai argumen pertama, dan objek pengguna (jika ada) diteruskan sebagai argumen kedua

Return

google.script.run — "runner skrip" ini, untuk perantaian


withUserObject(object)

Menyetel objek yang akan diteruskan sebagai parameter kedua ke pengendali berhasil dan gagal. "Objek pengguna" ini — yang tidak sama dengan class User — memungkinkan fungsi callback merespons konteks saat klien menghubungi server. Karena objek pengguna tidak dikirim ke server, objek tersebut tidak tunduk pada pembatasan parameter dan menampilkan nilai untuk panggilan server. Namun, objek pengguna tidak boleh berupa objek yang dibuat dengan operator 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>

Parameter

NamaJenisDeskripsi
objectObjectobjek yang akan diteruskan sebagai parameter kedua ke pengendali berhasil dan gagal; karena objek pengguna tidak dikirim ke server, objek tersebut tidak tunduk pada pembatasan parameter dan menampilkan nilai untuk panggilan server. Namun, objek pengguna tidak boleh berupa objek yang dibuat dengan operator new

Return

google.script.run — "runner skrip" ini, untuk perantaian