आसान ट्रिगर

ट्रिगर की मदद से, Apps Script किसी फ़ंक्शन को अपने-आप चला सकता है. ऐसा तब होता है, जब कोई इवेंट होता है. जैसे, कोई दस्तावेज़ खोलना. सिंपल ट्रिगर, Apps Script में पहले से मौजूद फ़ंक्शन का एक सेट होता है. जैसे, onOpen(e) फ़ंक्शन. यह फ़ंक्शन तब काम करता है, जब कोई उपयोगकर्ता Google Docs, Sheets, Slides या Forms की फ़ाइल खोलता है. इंस्टॉल किए जा सकने वाले ट्रिगर, सामान्य ट्रिगर की तुलना में ज़्यादा सुविधाएं देते हैं. हालांकि, इनका इस्तेमाल करने से पहले इन्हें चालू करना ज़रूरी है. दोनों तरह के ट्रिगर के लिए, Apps Script ट्रिगर किए गए फ़ंक्शन को इवेंट ऑब्जेक्ट पास करता है. इसमें उस कॉन्टेक्स्ट के बारे में जानकारी होती है जिसमें इवेंट हुआ था.

शुरू करना

सिंपल ट्रिगर का इस्तेमाल करने के लिए, बस एक ऐसा फ़ंक्शन बनाएं जो रिज़र्व किए गए इन फ़ंक्शन के नामों में से किसी एक का इस्तेमाल करता हो:

  • onOpen(e) तब चलता है, जब कोई उपयोगकर्ता ऐसी स्प्रेडशीट, दस्तावेज़, प्रज़ेंटेशन या फ़ॉर्म खोलता है जिसमें बदलाव करने की अनुमति उसके पास है.
  • onInstall(e) तब चलता है, जब कोई उपयोगकर्ता Google Docs, Sheets, Slides या Forms में जाकर, एडिटर ऐड-ऑन इंस्टॉल करता है.
  • onEdit(e) तब चलता है, जब कोई उपयोगकर्ता स्प्रेडशीट में किसी वैल्यू को बदलता है.
  • onSelectionChange(e) तब चलता है, जब कोई उपयोगकर्ता स्प्रेडशीट में चुने गए सेल में बदलाव करता है.
  • doGet(e) तब चलता है, जब कोई उपयोगकर्ता वेब ऐप्लिकेशन पर जाता है या कोई प्रोग्राम, वेब ऐप्लिकेशन को एचटीटीपी GET अनुरोध भेजता है.
  • doPost(e) तब चलता है, जब कोई प्रोग्राम किसी वेब ऐप्लिकेशन को एचटीटीपी POST अनुरोध भेजता है.

ऊपर दिए गए फ़ंक्शन के नामों में मौजूद e पैरामीटर, एक इवेंट ऑब्जेक्ट है. इसे फ़ंक्शन में पास किया जाता है. इस ऑब्जेक्ट में उस कॉन्टेक्स्ट के बारे में जानकारी होती है जिसकी वजह से ट्रिगर फ़ायर हुआ. हालांकि, इसका इस्तेमाल करना ज़रूरी नहीं है.

पाबंदियां

सिंपल ट्रिगर अपने-आप चालू हो जाते हैं. इसके लिए, उपयोगकर्ता से अनुमति नहीं मांगी जाती. इसलिए, इन पर कई पाबंदियां लागू होती हैं:

  • स्क्रिप्ट को Google Sheets, Slides, Docs या Forms की किसी फ़ाइल से बाउंड किया जाना चाहिए. इसके अलावा, यह ऐड-ऑन के तौर पर भी काम कर सकती है, जो इनमें से किसी एक ऐप्लिकेशन के साथ काम करता हो.
  • अगर किसी फ़ाइल को सिर्फ़ पढ़ने (देखने या टिप्पणी करने) के मोड में खोला जाता है, तो ये स्क्रिप्ट नहीं चलती हैं.
  • स्क्रिप्ट को चलाने और एपीआई अनुरोधों से ट्रिगर नहीं चलते. उदाहरण के लिए, किसी सेल में बदलाव करने के लिए Range.setValue() को कॉल करने से, स्प्रेडशीट का onEdit ट्रिगर नहीं चलेगा.
  • वे उन सेवाओं को ऐक्सेस नहीं कर सकते जिनके लिए अनुमति ज़रूरी है. उदाहरण के लिए, कोई सामान्य ट्रिगर ईमेल नहीं भेज सकता, क्योंकि Gmail सेवा के लिए अनुमति ज़रूरी होती है. हालांकि, कोई सामान्य ट्रिगर, भाषा सेवा की मदद से किसी वाक्यांश का अनुवाद कर सकता है. यह सेवा, पहचान ज़ाहिर किए बिना काम करती है.
  • वे उस फ़ाइल में बदलाव कर सकते हैं जिससे वे जुड़े हैं. हालांकि, वे अन्य फ़ाइलों को ऐक्सेस नहीं कर सकते, क्योंकि इसके लिए अनुमति की ज़रूरत होती है.
  • सुरक्षा से जुड़ी कई पाबंदियों के आधार पर, ऐसा हो सकता है कि वे मौजूदा उपयोगकर्ता की पहचान का पता लगा पाएं या न लगा पाएं.
  • ये 30 सेकंड से ज़्यादा समय तक नहीं चल सकते.
  • कुछ मामलों में, Editor add-ons, बिना अनुमति वाले मोड में अपने 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)

जब कोई उपयोगकर्ता Google Docs, Sheets, Slides या Forms में जाकर, एडिटर ऐड-ऑन इंस्टॉल करता है, तो onInstall(e) ट्रिगर अपने-आप चालू हो जाता है. जब कोई उपयोगकर्ता 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) ट्रिगर अपने-आप चालू हो जाता है. इस ट्रिगर को चालू करने के लिए, ट्रिगर जोड़ने के बाद आपको स्प्रेडशीट को रीफ़्रेश करना होगा. साथ ही, हर बार स्प्रेडशीट खोलने पर भी ऐसा करना होगा.

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

जब कोई उपयोगकर्ता किसी वेब ऐप्लिकेशन पर जाता है या कोई प्रोग्राम किसी वेब ऐप्लिकेशन को एचटीटीपी GET अनुरोध भेजता है, तो doGet(e) ट्रिगर अपने-आप चालू हो जाता है. जब कोई प्रोग्राम किसी वेब ऐप्लिकेशन को एचटीटीपी POST अनुरोध भेजता है, तब doPost(e) ट्रिगर चालू होता है. इन ट्रिगर के बारे में ज़्यादा जानकारी, वेब ऐप्लिकेशन, एचटीएमएल सेवा, और कॉन्टेंट सेवा से जुड़ी गाइड में दी गई है. ध्यान दें कि doGet(e) और doPost(e) पर, ऊपर दी गई पाबंदियां लागू नहीं होती हैं.

उपलब्ध ट्रिगर टाइप

अगर सामान्य ट्रिगर से जुड़ी पाबंदियों की वजह से, आपकी ज़रूरतें पूरी नहीं हो पा रही हैं, तो इंस्टॉल किए जा सकने वाले ट्रिगर का इस्तेमाल किया जा सकता है. यहां दी गई टेबल में, इस बारे में खास जानकारी दी गई है कि हर इवेंट टाइप के लिए, किस तरह के ट्रिगर उपलब्ध हैं. उदाहरण के लिए, Google Sheets, Slides, Forms, और Docs, सभी में सामान्य ओपन ट्रिगर काम करते हैं. हालांकि, सिर्फ़ Sheets, Docs, और Forms में इंस्टॉल किए जा सकने वाले ओपन ट्रिगर काम करते हैं.

इवेंट सिंपल ट्रिगर इंस्टॉल किए जा सकने वाले ट्रिगर
खोलें
Sheets
Slides
Forms*
Docs

function onOpen(e)

Sheets
Forms*
Docs
बदलाव करें
Sheets

function onEdit(e)

Sheets
चुने गए हिस्से में बदलाव
Sheets

function onSelectionChange(e)

इंस्टॉल करें
Sheets
Slides
Forms
Docs

function onInstall(e)

बदलें
Sheets
फ़ॉर्म सबमिट करना
Sheets
Forms
समय के हिसाब से (घड़ी)
Sheets
Slides
Forms
Docs
Standalone
पाएं
अपने-आप में पूरे शॉर्ट वीडियो

function doGet(e)

पोस्ट करें
अपने-आप में पूरे शॉर्ट वीडियो

function doPost(e)

* Google फ़ॉर्म के लिए ओपन इवेंट तब ट्रिगर नहीं होता, जब कोई उपयोगकर्ता जवाब देने के लिए फ़ॉर्म खोलता है. इसके बजाय, यह तब ट्रिगर होता है, जब कोई एडिटर फ़ॉर्म में बदलाव करने के लिए उसे खोलता है.