क्लास google.script.run (क्लाइंट-साइड एपीआई)

google.script.run, एसिंक्रोनस क्लाइंट-साइड JavaScript API है. यह एचटीएमएल सेवा वाले पेजों पर उपलब्ध है. यह सर्वर साइड Apps Script के फ़ंक्शन को कॉल कर सकता है. 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>

पैरामीटर

नामTypeब्यौरा
...ज़्यादातर टाइप कानूनी होते हैं, लेकिन form के अलावा, ये Date, Function या DOM एलिमेंट नहीं होते; ब्यौरा देखेंकानूनी पैरामीटर, Number, Boolean, String या null जैसे JavaScript प्रिमिटिव होते हैं. साथ ही, इनमें JavaScript ऑब्जेक्ट और ऐसा अरे भी होता है जो प्रिमिटिव, ऑब्जेक्ट, और अरे से बना होता है. पेज में मौजूद form एलिमेंट, पैरामीटर के तौर पर भी कानूनी होता है. हालांकि, यह फ़ंक्शन का इकलौता पैरामीटर होना चाहिए. अगर Date, Function, DOM एलिमेंट को form या पाबंदी वाले अन्य टाइप के अलावा पास करने की कोशिश की जाती है, तो अनुरोध काम नहीं करते. इनमें ऑब्जेक्ट या कलेक्शन के अंदर पाबंदी वाले टाइप भी शामिल हैं. सर्कुलर संदर्भ बनाने वाले ऑब्जेक्ट भी काम नहीं करेंगे और अरे में तय नहीं किए गए फ़ील्ड null बन जाएंगे. ध्यान दें कि सर्वर को भेजा गया कोई ऑब्जेक्ट, ओरिजनल ऑब्जेक्ट की कॉपी बन जाता है. अगर किसी सर्वर फ़ंक्शन को कोई ऑब्जेक्ट मिलता है और वह उसकी प्रॉपर्टी में बदलाव करता है, तो क्लाइंट पर मौजूद प्रॉपर्टी पर कोई असर नहीं पड़ता.

रिटर्न

void — यह एसिंक्रोनस है और सीधे तौर पर नहीं दिखता है. हालांकि, सर्वर साइड फ़ंक्शन, क्लाइंट को सक्सेस हैंडलर को पास किए गए पैरामीटर के तौर पर कोई वैल्यू दिखा सकता है. साथ ही, रिटर्न टाइप पर वही पाबंदियां लागू होती हैं जो पैरामीटर टाइप पर लागू होती हैं. हालांकि, form एलिमेंट कोई कानूनी रिटर्न टाइप नहीं है


withFailureHandler(function)

अगर सर्वर साइड फ़ंक्शन कोई अपवाद देता है, तो उसे चलाने के लिए कॉलबैक फ़ंक्शन सेट करता है. फ़ंक्शन को Error ऑब्जेक्ट, पहले आर्ग्युमेंट के तौर पर और उपयोगकर्ता ऑब्जेक्ट (अगर कोई है) को दूसरे आर्ग्युमेंट के तौर पर पास किया जाता है. फ़ेलियर हैंडलर के बिना, 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>

पैरामीटर

नामTypeब्यौरा
functionFunctionअगर सर्वर-साइड फ़ंक्शन कोई अपवाद देता है, तो उसे चलाने के लिए क्लाइंट-साइड कॉलबैक फ़ंक्शन; फ़ंक्शन को Error ऑब्जेक्ट को पहले तर्क के तौर पर पास किया जाता है और उपयोगकर्ता ऑब्जेक्ट (अगर कोई है) को दूसरे तर्क के तौर पर पास किया जाता है

रिटर्न

google.script.run — यह "स्क्रिप्ट रनर", चेन करने के लिए है


withSuccessHandler(function)

अगर सर्वर-साइड फ़ंक्शन सही तरीके से वापस आ जाता है, तो यह फ़ंक्शन कॉलबैक फ़ंक्शन सेट करता है. सर्वर की रिटर्न वैल्यू, फ़ंक्शन को पहले तर्क के तौर पर पास की जाती है. साथ ही, उपयोगकर्ता ऑब्जेक्ट (अगर कोई है) को दूसरे तर्क के तौर पर पास किया जाता है.

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>

पैरामीटर

नामTypeब्यौरा
functionFunctionअगर सर्वर-साइड फ़ंक्शन सही तरीके से रिटर्न करता है, तो एक क्लाइंट-साइड कॉलबैक फ़ंक्शन को चलाया जाएगा; सर्वर की रिटर्न वैल्यू, फ़ंक्शन को पहले आर्ग्युमेंट के तौर पर पास की जाती है. साथ ही, उपयोगकर्ता ऑब्जेक्ट (अगर कोई है) को दूसरे तर्क के तौर पर पास किया जाता है

रिटर्न

google.script.run — यह "स्क्रिप्ट रनर", चेन करने के लिए है


withUserObject(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()" />
    <input type="button" value="Not Clicked"
      onclick="google.script.run
          .withSuccessHandler(updateButton)
          .withUserObject(this)
          .getEmail()" />
  </body>
</html>

पैरामीटर

नामTypeब्यौरा
objectObjectएक ऑब्जेक्ट, जो सफलता और असफलता हैंडलर को दूसरे पैरामीटर के तौर पर पास करना है. ऐसा इसलिए है, क्योंकि उपयोगकर्ता के ऑब्जेक्ट सर्वर पर नहीं भेजे जाते हैं, इसलिए उन पर सर्वर कॉल के लिए पैरामीटर और रिटर्न की वैल्यू पर लागू होने वाली पाबंदियां लागू नहीं होती हैं. हालांकि, उपयोगकर्ता ऑब्जेक्ट ऐसे ऑब्जेक्ट नहीं हो सकते जिन्हें new ऑपरेटर की मदद से बनाया गया हो

रिटर्न

google.script.run — यह "स्क्रिप्ट रनर", चेन करने के लिए है