सिंपल ट्रिगर

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

शुरू करना

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

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

ऊपर दिए गए फ़ंक्शन के नामों में मौजूद 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 में पसंद के मुताबिक मेन्यू आइटम जोड़ने के लिए किया जाता है.

ट्रिगर/trigger.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) तब तक अपने-आप नहीं चलता, जब तक फ़ाइल को फिर से नहीं खोला जाता.

ट्रिगर/trigger.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) फ़ंक्शन सेल पर एक टिप्पणी सेट करता है जो आखिरी बार बदलाव किए जाने पर उसे रिकॉर्ड करता है.

ट्रिगर/trigger.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) फ़ंक्शन सेल की बैकग्राउंड को लाल रंग पर सेट कर देता है.

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

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

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

इवेंट आसान ट्रिगर इंस्टॉल किए जा सकने वाले ट्रिगर
खुला है
Sheets
Slides
फ़ॉर्म*
Docs

function onOpen(e)

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

function onEdit(e)

शीट
चुनाव में बदलाव
शीट

function onSelectionChange(e)

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

function onInstall(e)

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

function doGet(e)

पोस्ट
साइटें
सबसे अलग

function doPost(e)

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