आसान ट्रिगर

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

YouTube TV का इस्तेमाल शुरू करना

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

  • 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 सेकंड से ज़्यादा समय तक नहीं चल सकते.
  • कुछ मामलों में, एडिटर ऐड-ऑन अपने 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) ट्रिगर अपने-आप चलता है. doPost(e) तब चलता है, जब कोई प्रोग्राम किसी वेब ऐप्लिकेशन पर एचटीटीपी POST अनुरोध भेजता है. ये ट्रिगर वेब ऐप्लिकेशन, एचटीएमएल सेवा, और कॉन्टेंट सेवा की गाइड में ज़्यादा जानकारी के लिए दिखाए जाते हैं. ध्यान दें कि doGet(e) और doPost(e) पर ऊपर बताई गई पाबंदियां लागू नहीं होती हैं.

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

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

इवेंट आसान ट्रिगर इंस्टॉल किए जा सकने वाले ट्रिगर
खोलें
शीट
Slides
फ़ॉर्म*
Docs

function onOpen(e)

शीट
फ़ॉर्म*
Docs
बदलाव करें
शीट

function onEdit(e)

शीट
चुने गए विकल्प में बदलाव करें
शीट

function onSelectionChange(e)

इंस्टॉल करें
शीट
Slides
फ़ॉर्म
Docs

function onInstall(e)

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

function doGet(e)

पोस्ट
स्टैंडअलोन

function doPost(e)

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