Class ScriptApp

स्क्रिप्टऐप्लिकेशन

स्क्रिप्ट पब्लिश करने और ट्रिगर को ऐक्सेस और मैनेज करना. इस क्लास की मदद से, उपयोगकर्ता स्क्रिप्ट ट्रिगर बना सकते हैं और स्क्रिप्ट को सेवा के तौर पर पब्लिश करने को कंट्रोल कर सकते हैं.

प्रॉपर्टी

प्रॉपर्टीटाइपब्यौरा
AuthModeAuthModeयह सूची बताती है कि ट्रिगर किए गए फ़ंक्शन की मदद से, Apps Script कौनसी अनुमति वाली सेवाओं को चला सकता है.
AuthorizationStatusAuthorizationStatusयह एक एनोटेशन है, जो किसी स्क्रिप्ट की अनुमति की स्थिति दिखाता है.
EventTypeEventTypeट्रिगर किए गए इवेंट के टाइप को दिखाने वाला एनोटेशन.
InstallationSourceInstallationSourceयह एक एनोटेशन है, जिसमें बताया गया है कि उपयोगकर्ता के लिए स्क्रिप्ट को ऐड-ऑन के तौर पर कैसे इंस्टॉल किया गया था.
TriggerSourceTriggerSourceइवेंट के सोर्स की जानकारी देने वाला एनोटेशन, जिसकी वजह से ट्रिगर सक्रिय होता है.
WeekDayWeekdayहफ़्ते के दिनों को दिखाने वाला एनोटेशन.

तरीके

तरीकारिटर्न टाइपसंक्षिप्त विवरण
deleteTrigger(trigger)voidदिए गए ट्रिगर को हटाता है, ताकि वह अब न चले.
getAuthorizationInfo(authMode)AuthorizationInfoयह एक ऑब्जेक्ट दिखाता है. इसका इस्तेमाल यह तय करने के लिए किया जाता है कि उपयोगकर्ता को एक या उससे ज़्यादा सेवाओं का इस्तेमाल करने के लिए, इस स्क्रिप्ट को अनुमति देनी होगी या नहीं. साथ ही, अनुमति देने के लिए डायलॉग बॉक्स का यूआरएल भी दिखाता है.
getIdentityToken()Stringअगर openid स्कोप दिया गया है, तो असरदार उपयोगकर्ता के लिए OpenID Connect आइडेंटिटी टोकन मिलता है.
getInstallationSource()InstallationSourceयह एक वैल्यू दिखाता है, जिससे पता चलता है कि मौजूदा उपयोगकर्ता के लिए, स्क्रिप्ट को ऐड-ऑन के तौर पर कैसे इंस्टॉल किया गया. उदाहरण के लिए, क्या उपयोगकर्ता ने इसे Chrome Web Store से खुद इंस्टॉल किया है या डोमेन एडमिन ने इसे सभी उपयोगकर्ताओं के लिए इंस्टॉल किया है.
getOAuthToken()Stringअसली उपयोगकर्ता के लिए OAuth 2.0 ऐक्सेस टोकन पाता है.
getProjectTriggers()Trigger[]मौजूदा प्रोजेक्ट और मौजूदा उपयोगकर्ता से जुड़े, इंस्टॉल किए जा सकने वाले सभी ट्रिगर दिखाता है.
getScriptId()Stringस्क्रिप्ट प्रोजेक्ट का यूनीक आईडी पाता है.
getService()Serviceयह एक ऑब्जेक्ट दिखाता है, जिसका इस्तेमाल स्क्रिप्ट को वेब ऐप्लिकेशन के तौर पर पब्लिश करने के लिए किया जाता है.
getUserTriggers(document)Trigger[]इस दस्तावेज़ में, इस स्क्रिप्ट या ऐड-ऑन के लिए, इस उपयोगकर्ता के मालिकाना हक वाले सभी इंस्टॉल किए जा सकने वाले ट्रिगर दिखाता है.
getUserTriggers(form)Trigger[]इस फ़ॉर्म में, इस स्क्रिप्ट या ऐड-ऑन के लिए, इंस्टॉल किए जा सकने वाले सभी ट्रिगर दिखाता है.
getUserTriggers(spreadsheet)Trigger[]इस स्प्रेडशीट में, इस उपयोगकर्ता के मालिकाना हक वाले सभी इंस्टॉल किए जा सकने वाले ट्रिगर दिखाता है. हालांकि, ये ट्रिगर सिर्फ़ इस स्क्रिप्ट या ऐड-ऑन के लिए उपलब्ध होते हैं.
invalidateAuth()voidमौजूदा स्क्रिप्ट को लागू करने के लिए, असरदार उपयोगकर्ता के पास जो अनुमति है उसे अमान्य कर देता है.
newStateToken()StateTokenBuilderस्टेटस टोकन के लिए बिल्डर बनाता है. इसका इस्तेमाल, OAuth फ़्लो जैसे कॉलबैक एपीआई में किया जा सकता है.
newTrigger(functionName)TriggerBuilderइंस्टॉल किए जा सकने वाले ट्रिगर बनाने की प्रोसेस शुरू करता है. ट्रिगर होने पर, यह किसी फ़ंक्शन को कॉल करता है.

ज़्यादा जानकारी वाला दस्तावेज़

deleteTrigger(trigger)

दिए गए ट्रिगर को हटाता है, ताकि वह अब न चले.

// Deletes all triggers in the current project.
const triggers = ScriptApp.getProjectTriggers();
for (let i = 0; i < triggers.length; i++) {
  ScriptApp.deleteTrigger(triggers[i]);
}

पैरामीटर

नामटाइपब्यौरा
triggerTriggerमिटाने के लिए ट्रिगर.

अनुमति देना

इस तरीके का इस्तेमाल करने वाली स्क्रिप्ट को, इनमें से एक या एक से ज़्यादा स्कोप के लिए अनुमति की ज़रूरत होती है:

  • https://www.googleapis.com/auth/script.scriptapp

getAuthorizationInfo(authMode)

यह एक ऑब्जेक्ट दिखाता है. इसका इस्तेमाल यह तय करने के लिए किया जाता है कि उपयोगकर्ता को एक या उससे ज़्यादा सेवाओं का इस्तेमाल करने के लिए, इस स्क्रिप्ट को अनुमति देनी होगी या नहीं. साथ ही, अनुमति देने के लिए डायलॉग बॉक्स का यूआरएल भी दिखाता है. अगर स्क्रिप्ट को ऐड-ऑन के तौर पर पब्लिश किया गया है, जो इंस्टॉल किए जा सकने वाले ट्रिगर का इस्तेमाल करती है, तो इस जानकारी का इस्तेमाल उन कोड सेक्शन के ऐक्सेस को कंट्रोल करने के लिए किया जा सकता है जिनके लिए उपयोगकर्ता के पास ज़रूरी अनुमति नहीं है. इसके अलावा, समस्या को हल करने के लिए, ऐड-ऑन उपयोगकर्ता से अनुमति वाले डायलॉग बॉक्स का यूआरएल खोलने के लिए कह सकता है.

var authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL);
status = authInfo.getAuthorizationStatus();
url = authInfo.getAuthorizationUrl();

पैरामीटर

नामटाइपब्यौरा
authModeAuthModeअनुमति का वह मोड जिसके लिए अनुमति की जानकारी का अनुरोध किया जाता है; ज़्यादातर मामलों में, authMode की वैल्यू ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL) होनी चाहिए, क्योंकि अनुमति के किसी भी अन्य मोड के लिए, उपयोगकर्ताओं को अनुमति देने की ज़रूरत नहीं होती

वापसी का टिकट

AuthorizationInfo — एक ऑब्जेक्ट, जो उपयोगकर्ता की अनुमति की स्थिति के बारे में जानकारी दे सकता है


getIdentityToken()

अगर openid स्कोप दिया गया है, तो असरदार उपयोगकर्ता के लिए OpenID Connect आइडेंटिटी टोकन मिलता है. यह स्कोप डिफ़ॉल्ट रूप से शामिल नहीं होता. इसका अनुरोध करने के लिए, आपको इसे मेनिफ़ेस्ट फ़ाइल में साफ़ तौर पर स्कोप के तौर पर जोड़ना होगा. टोकन में उपयोगकर्ता की ज़्यादा जानकारी दिखाने के लिए, https://www.googleapis.com/auth/userinfo.email या https://www.googleapis.com/auth/userinfo.profile स्कोप शामिल करें.

दिखाया गया आईडी टोकन, कोड में बदला गया JSON वेब टोकन (JWT) होता है. इसमें से जानकारी निकालने के लिए, इसे डिकोड करना ज़रूरी होता है. नीचे दिए गए उदाहरणों में, टोकन को डिकोड करने और असरदार उपयोगकर्ता का Google प्रोफ़ाइल आईडी निकालने का तरीका बताया गया है.

const idToken = ScriptApp.getIdentityToken();
const body = idToken.split('.')[1];
const decoded = Utilities
                    .newBlob(
                        Utilities.base64Decode(body),
                        )
                    .getDataAsString();
const payload = JSON.parse(decoded);

Logger.log(`Profile ID: ${payload.sub}`);
OpenID Connect के दस्तावेज़ देखें. इसमें, दिखाए गए फ़ील्ड (दावे) की पूरी सूची दी गई है.

वापसी का टिकट

String — अगर आइडेंटिटी टोकन उपलब्ध है, तो उसका इस्तेमाल करें. अगर उपलब्ध नहीं है, तो null का इस्तेमाल करें.


getInstallationSource()

यह एक वैल्यू दिखाता है, जिससे पता चलता है कि मौजूदा उपयोगकर्ता के लिए, स्क्रिप्ट को ऐड-ऑन के तौर पर कैसे इंस्टॉल किया गया. उदाहरण के लिए, क्या उपयोगकर्ता ने इसे Chrome Web Store से खुद इंस्टॉल किया है या डोमेन एडमिन ने इसे सभी उपयोगकर्ताओं के लिए इंस्टॉल किया है.

वापसी का टिकट

InstallationSource — इंस्टॉल करने का सोर्स.


getOAuthToken()

असली उपयोगकर्ता के लिए OAuth 2.0 ऐक्सेस टोकन पाता है. अगर स्क्रिप्ट के OAuth स्कोप, किसी ऐसे दूसरे Google API को अनुमति देने के लिए काफ़ी हैं जिसे आम तौर पर अपने OAuth फ़्लो (जैसे, Google पिकर) की ज़रूरत होती है, तो स्क्रिप्ट इस टोकन को पास करके, अनुमति के लिए पूछे जाने वाले दूसरे सवाल को बायपास कर सकती हैं. टोकन की समयसीमा कुछ समय (कम से कम कुछ मिनट) बाद खत्म हो जाती है. स्क्रिप्ट को अनुमति न मिलने की समस्या को मैनेज करना चाहिए और ज़रूरत पड़ने पर नया टोकन पाने के लिए, इस तरीके को कॉल करना चाहिए.

इस तरीके से मिले टोकन में सिर्फ़ वे स्कोप शामिल होते हैं जिनकी फ़िलहाल स्क्रिप्ट को ज़रूरत होती है. जिन स्कोप को पहले अनुमति दी गई थी, लेकिन अब स्क्रिप्ट में उनका इस्तेमाल नहीं किया जाता है उन्हें दिखाए गए टोकन में शामिल नहीं किया जाता. अगर स्क्रिप्ट के लिए ज़रूरी OAuth स्कोप के अलावा, और OAuth स्कोप की ज़रूरत है, तो उन्हें स्क्रिप्ट की मेनिफ़ेस्ट फ़ाइल में तय किया जा सकता है.

वापसी का टिकट

String — OAuth 2.0 टोकन की स्ट्रिंग.


getProjectTriggers()

मौजूदा प्रोजेक्ट और मौजूदा उपयोगकर्ता से जुड़े, इंस्टॉल किए जा सकने वाले सभी ट्रिगर दिखाता है.

Logger.log(
    `Current project has ${ScriptApp.getProjectTriggers().length} triggers.`,
);

वापसी का टिकट

Trigger[] — इस प्रोजेक्ट से जुड़े मौजूदा उपयोगकर्ता के ट्रिगर का कलेक्शन.

अनुमति देना

इस तरीके का इस्तेमाल करने वाली स्क्रिप्ट को, इनमें से एक या एक से ज़्यादा स्कोप के लिए अनुमति की ज़रूरत होती है:

  • https://www.googleapis.com/auth/script.scriptapp

getScriptId()

स्क्रिप्ट प्रोजेक्ट का यूनीक आईडी पाता है. getProjectKey() के बजाय, स्क्रिप्ट प्रोजेक्ट के लिए यूनीक आइडेंटिफ़ायर पाने का यह सबसे अच्छा तरीका है. इस आईडी का इस्तेमाल उन सभी जगहों पर किया जा सकता है जहां पहले प्रोजेक्ट पासकोड दिया गया था.

वापसी का टिकट

String — स्क्रिप्ट प्रोजेक्ट का आईडी.


getService()

यह एक ऑब्जेक्ट दिखाता है, जिसका इस्तेमाल स्क्रिप्ट को वेब ऐप्लिकेशन के तौर पर पब्लिश करने के लिए किया जाता है.

// Get the URL of the published web app.
const url = ScriptApp.getService().getUrl();

वापसी का टिकट

Service — यह एक ऑब्जेक्ट है, जिसका इस्तेमाल स्क्रिप्ट को वेब ऐप्लिकेशन के तौर पर पब्लिश करने की प्रक्रिया को मॉनिटर और कंट्रोल करने के लिए किया जाता है.


getUserTriggers(document)

इस दस्तावेज़ में, इस स्क्रिप्ट या ऐड-ऑन के लिए, इस उपयोगकर्ता के मालिकाना हक वाले सभी इंस्टॉल किए जा सकने वाले ट्रिगर दिखाता है. इस तरीके का इस्तेमाल, दूसरी स्क्रिप्ट से जुड़े ट्रिगर देखने के लिए नहीं किया जा सकता.

const doc = DocumentApp.getActiveDocument();
const triggers = ScriptApp.getUserTriggers(doc);
// Log the handler function for the first trigger in the array.
Logger.log(triggers[0].getHandlerFunction());

पैरामीटर

नामटाइपब्यौरा
documentDocumentGoogle Docs की ऐसी फ़ाइल जिसमें इंस्टॉल किए जा सकने वाले ट्रिगर हो सकते हैं.

वापसी का टिकट

Trigger[] — दिए गए दस्तावेज़ में, इस उपयोगकर्ता के मालिकाना हक वाले ट्रिगर का कलेक्शन.

अनुमति देना

इस तरीके का इस्तेमाल करने वाली स्क्रिप्ट को, इनमें से एक या एक से ज़्यादा स्कोप के लिए अनुमति की ज़रूरत होती है:

  • https://www.googleapis.com/auth/script.scriptapp

getUserTriggers(form)

इस फ़ॉर्म में, इस स्क्रिप्ट या ऐड-ऑन के लिए, इंस्टॉल किए जा सकने वाले सभी ट्रिगर दिखाता है. इस तरीके का इस्तेमाल, दूसरी स्क्रिप्ट से जुड़े ट्रिगर देखने के लिए नहीं किया जा सकता.

const form = FormApp.getActiveForm();
const triggers = ScriptApp.getUserTriggers(form);
// Log the trigger source for the first trigger in the array.
Logger.log(triggers[0].getTriggerSource());

पैरामीटर

नामटाइपब्यौरा
formFormGoogle Forms की ऐसी फ़ाइल जिसमें इंस्टॉल किए जा सकने वाले ट्रिगर हो सकते हैं.

वापसी का टिकट

Trigger[] — दिए गए फ़ॉर्म में, इस उपयोगकर्ता के मालिकाना हक वाले ट्रिगर का कलेक्शन.

अनुमति देना

इस तरीके का इस्तेमाल करने वाली स्क्रिप्ट को, इनमें से एक या एक से ज़्यादा स्कोप के लिए अनुमति की ज़रूरत होती है:

  • https://www.googleapis.com/auth/script.scriptapp

getUserTriggers(spreadsheet)

इस स्प्रेडशीट में, इस उपयोगकर्ता के मालिकाना हक वाले सभी इंस्टॉल किए जा सकने वाले ट्रिगर दिखाता है. हालांकि, ये ट्रिगर सिर्फ़ इस स्क्रिप्ट या ऐड-ऑन के लिए उपलब्ध होते हैं. इस तरीके का इस्तेमाल, दूसरी स्क्रिप्ट से जुड़े ट्रिगर देखने के लिए नहीं किया जा सकता.

const ss = SpreadsheetApp.getActiveSpreadsheet();
const triggers = ScriptApp.getUserTriggers(ss);
// Log the event type for the first trigger in the array.
Logger.log(triggers[0].getEventType());

पैरामीटर

नामटाइपब्यौरा
spreadsheetSpreadsheetGoogle Sheets की ऐसी फ़ाइल जिसमें इंस्टॉल किए जा सकने वाले ट्रिगर शामिल हो सकते हैं.

वापसी का टिकट

Trigger[] — दी गई स्प्रेडशीट में, इस उपयोगकर्ता के मालिकाना हक वाले ट्रिगर का कलेक्शन.

अनुमति देना

इस तरीके का इस्तेमाल करने वाली स्क्रिप्ट को, इनमें से एक या एक से ज़्यादा स्कोप के लिए अनुमति की ज़रूरत होती है:

  • https://www.googleapis.com/auth/script.scriptapp

invalidateAuth()

मौजूदा स्क्रिप्ट को लागू करने के लिए, असरदार उपयोगकर्ता के पास जो अनुमति है उसे अमान्य कर देता है. इसका इस्तेमाल, मौजूदा स्क्रिप्ट के लिए मिली किसी भी अनुमति को अमान्य करने के लिए किया जाता है. यह सुविधा, एक बार के लिए अनुमति वाले फ़ंक्शन के लिए खास तौर पर मददगार है. एक बार में अनुमति देने वाले फ़ंक्शन, स्क्रिप्ट को अनुमति मिलने के बाद ही पहली बार चलाए जा सकते हैं. अगर आपको इसके बाद कोई कार्रवाई करनी है, तो आपको स्क्रिप्ट की अनुमति रद्द करनी होगी, ताकि उपयोगकर्ता को अनुमति वाला डायलॉग बॉक्स फिर से दिख सके.

ScriptApp.invalidateAuth();

थ्रो

Error — जब पुष्टि नहीं हो पाती


newStateToken()

स्टेटस टोकन के लिए बिल्डर बनाता है. इसका इस्तेमाल, OAuth फ़्लो जैसे कॉलबैक एपीआई में किया जा सकता है.

// Generate a callback URL, given the name of a callback function. The script
// does not need to be published as a web app; the /usercallback URL suffix
// replaces /edit in any script's URL.
function getCallbackURL(callbackFunction) {
  // IMPORTANT: Replace string below with the URL from your script, minus the
  // /edit at the end.
  const scriptUrl =
      'https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz';
  const urlSuffix = '/usercallback?state=';
  const stateToken = ScriptApp.newStateToken()
                         .withMethod(callbackFunction)
                         .withTimeout(120)
                         .createToken();
  return scriptUrl + urlSuffix + stateToken;
}

ज़्यादातर OAuth2 फ़्लो में, state टोकन को सीधे ऑथराइज़ेशन एंडपॉइंट पर भेजा जाता है, न कि कॉलबैक यूआरएल के हिस्से के तौर पर. इसके बाद, ऑथराइज़ेशन एंडपॉइंट उसे कॉलबैक यूआरएल के हिस्से के तौर पर भेजता है.

उदाहरण के लिए:

  • स्क्रिप्ट, उपयोगकर्ता को OAuth2 के ऑथराइज़ेशन यूआरएल पर रीडायरेक्ट करती है: https://accounts.google.com/o/oauth2/auth?state=token_generated_with_this_method&callback_uri=https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback&other_oauth2_parameters
  • उपयोगकर्ता, 'अनुमति दें' पर क्लिक करता है. इसके बाद, OAuth2 अनुमति पेज, उपयोगकर्ता को वापस https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback?state=token_generated_with_this_method&other_params_that_include_tokens_or_grants पर रीडायरेक्ट करता है
  • ऊपर दिए गए रीडायरेक्ट (http://script.google.com/... पर वापस) की वजह से, ब्राउज़र /usercallback से अनुरोध करता है. यह अनुरोध, StateTokenBuilder.withMethod(method) में बताए गए तरीके को लागू करता है.

वापसी का टिकट

StateTokenBuilder — यह एक ऐसा ऑब्जेक्ट है जिसका इस्तेमाल, स्टेट-टोकन बनाने की प्रोसेस को जारी रखने के लिए किया जाता है.


newTrigger(functionName)

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

// Creates an edit trigger for a spreadsheet identified by ID.
ScriptApp.newTrigger('myFunction')
    .forSpreadsheet('1234567890abcdefghijklmnopqrstuvwxyz_a1b2c3')
    .onEdit()
    .create();

पैरामीटर

नामटाइपब्यौरा
functionNameStringट्रिगर होने पर कॉल किया जाने वाला फ़ंक्शन. शामिल की गई लाइब्रेरी के फ़ंक्शन इस्तेमाल किए जा सकते हैं, जैसे कि Library.libFunction1.

वापसी का टिकट

TriggerBuilder — ट्रिगर बनाने की प्रोसेस जारी रखने के लिए इस्तेमाल किया जाने वाला ऑब्जेक्ट.

अनुमति देना

इस तरीके का इस्तेमाल करने वाली स्क्रिप्ट को, इनमें से एक या एक से ज़्यादा स्कोप के लिए अनुमति की ज़रूरत होती है:

  • https://www.googleapis.com/auth/script.scriptapp

अब काम न करने वाले तरीके