Google Apps Script में, उपयोगकर्ता के डेटा, Google के अन्य सिस्टम, और बाहरी सिस्टम के साथ इंटरैक्ट करने के लिए, 30 से ज़्यादा सेवाएं पहले से मौजूद होती हैं. ये सेवाएं, JavaScript के स्टैंडर्ड Math
ऑब्जेक्ट की तरह ग्लोबल ऑब्जेक्ट के तौर पर उपलब्ध कराई जाती हैं. उदाहरण के लिए, जिस तरह Math
में random()
जैसे तरीके और PI
जैसे कॉन्स्टेंट होते हैं उसी तरह Apps Script की स्प्रेडशीट सेवा में openById(id)
जैसे तरीके, Range
जैसी क्लास (चाइल्ड ऑब्जेक्ट), और DataValidationCriteria
जैसे एनम होते हैं.
Google Workspace प्रॉडक्ट को कंट्रोल करने वाली सेवाओं के लिए रेफ़रंस दस्तावेज़, इस साइट के साइडबार में "रेफ़रंस" हेडर के नीचे मौजूद "Google Workspace सेवाएं" सेक्शन में इकट्ठा किए जाते हैं. यूज़र इंटरफ़ेस बनाने, एक्सएमएल को पार्स करने या लॉग डेटा लिखने जैसी कामों के लिए, "स्क्रिप्ट सेवाएं" सेक्शन में उपयोगिता सेवाएं इकट्ठा की जाती हैं.
JavaScript की नई सुविधाएं
Apps Script, JavaScript के दो रनटाइम के साथ काम करता है: आधुनिक V8 रनटाइम और Mozilla के Rhino JavaScript इंटरप्रेटर से चलने वाला पुराना रनटाइम.
V8 रनटाइम, आधुनिक ECMAScript सिंटैक्स और सुविधाओं के साथ काम करता है. Rhino रनटाइम, JavaScript 1.6 स्टैंडर्ड के साथ-साथ 1.7 और 1.8 की कुछ सुविधाओं पर आधारित है. अपनी स्क्रिप्ट के साथ इस्तेमाल करने के लिए, आपके पास रनटाइम चुनने का विकल्प होता है. हालांकि, हमारा सुझाव है कि आप V8 रनटाइम का इस्तेमाल करें.
हर रनटाइम, आपकी स्क्रिप्ट के लिए उपलब्ध JavaScript क्लास और ऑब्जेक्ट के साथ-साथ, पहले से मौजूद और Google की बेहतर सेवाओं के साथ काम करता है. आपकी स्क्रिप्ट में, Array
,
Date
,
RegExp
,
वगैरह जैसे सामान्य ऑब्जेक्ट के साथ-साथ, Math
और
Object
जैसे ग्लोबल ऑब्जेक्ट का इस्तेमाल किया जा सकता है.
ऑटोकंप्लीट की सुविधा का इस्तेमाल करना
स्क्रिप्ट एडिटर में "कॉन्टेंट असिस्ट" सुविधा मिलती है. इसे आम तौर पर "अपने-आप पूरा होने की सुविधा" कहा जाता है. इस सुविधा से, स्क्रिप्ट के मौजूदा कॉन्टेक्स्ट में मान्य वैश्विक ऑब्जेक्ट के साथ-साथ, ऐसे तरीके और एन्सम (एक से ज़्यादा वैल्यू वाले वैरिएबल) भी दिखते हैं. अपने-आप पूरा होने वाले सुझाव तब अपने-आप दिखते हैं, जब किसी ग्लोबल ऑब्जेक्ट, एनम या ऐसे मेथड कॉल के बाद पीरियड लिखा जाता है जो Apps Script क्लास दिखाता है. उदाहरण के लिए:
- किसी ग्लोबल ऑब्जेक्ट का पूरा नाम टाइप करने या अपने-आप पूरा होने वाले विकल्पों में से कोई एक चुनने के बाद,
.
(पॉइंट) टाइप करें. ऐसा करने पर, आपको उस क्लास के सभी तरीके और एनम दिखेंगे. - कुछ वर्ण टाइप करने पर, आपको उन वर्णों से शुरू होने वाले सभी मान्य सुझाव दिखेंगे.
ग्लोबल ऑब्जेक्ट को समझना
हर सेवा कम से कम एक ग्लोबल (टॉप-लेवल) ऑब्जेक्ट उपलब्ध कराती है. उदाहरण के लिए, Gmail सेवा को सिर्फ़ GmailApp
ऑब्जेक्ट से ऐक्सेस किया जाता है. कुछ सेवाएं कई ग्लोबल ऑब्जेक्ट उपलब्ध कराती हैं. उदाहरण के लिए, बेस सेवा में चार ग्लोबल ऑब्जेक्ट शामिल हैं: Browser
, Logger
, MimeType
, और Session
.
कॉल करने के तरीके
पहले से मौजूद या बेहतर सेवाओं के ग्लोबल ऑब्जेक्ट में ऐसे तरीके शामिल होते हैं जो डेटा या Apps Script क्लास दिखाते हैं. स्क्रिप्ट, इस फ़ॉर्मैट में मेथड कॉल करती हैं:
GlobalObjectName.methodName(argument1, argument2, ..., argumentN);
उदाहरण के लिए, कोई स्क्रिप्ट Gmail सेवा के sendEmail(recipient, subject, body)
तरीके को कॉल करके ईमेल भेज सकती है. इसके लिए, यह तरीका अपनाएं:
GmailApp.sendEmail('[email protected]', 'Subject line', 'This is the body.');
अगर कोई तरीका किसी अन्य Apps Script क्लास को दिखाता है, तो एक लाइन पर तरीकों को चेन किया जा सकता है. (रिटर्न टाइप, अपने-आप पूरा होने वाले टेक्स्ट और किसी तरीके के रेफ़रंस दस्तावेज़, दोनों में दिखते हैं.) उदाहरण के लिए, DocumentApp.create()
तरीका, Document
दिखाता है. इसलिए, कोड के ये दो सेक्शन एक जैसे हैं:
var doc = DocumentApp.create('New document');
var body = doc.getTab('t.0').asDocumentTab().getBody();
body.appendParagraph('New paragraph.');
// Same result as above.
DocumentApp.create('New document').getTab('t.0').asDocumentTab().getBody()
.appendParagraph('New paragraph.');
बच्चों के लिए बनी क्लास ऐक्सेस करना
हर सेवा में एक या उससे ज़्यादा चाइल्ड क्लास शामिल होती हैं. इन्हें टॉप लेवल से ऐक्सेस नहीं किया जा सकता, जैसा कि ग्लोबल ऑब्जेक्ट को किया जा सकता है. इन क्लास को बनाने के लिए, new
कीवर्ड का इस्तेमाल नहीं किया जा सकता. हालांकि, Date
जैसी स्टैंडर्ड JavaScript क्लास के लिए, ऐसा किया जा सकता है. किसी चाइल्ड क्लास को सिर्फ़ उस तरीके को कॉल करके ऐक्सेस किया जा सकता है जो उसे दिखाता है. अगर आपको किसी क्लास को ऐक्सेस करने का तरीका नहीं पता है, तो सेवा के रेफ़रंस दस्तावेज़ के रूट पेज पर जाएं और वह तरीका ढूंढें जिससे आपको अपनी पसंद की क्लास मिल सके.
इंटरफ़ेस से जुड़ी समस्याएं हल करना
कुछ सेवाओं में खास क्लास शामिल होती हैं, जिन्हें रेफ़रंस दस्तावेज़ में "इंटरफ़ेस" के तौर पर लेबल किया जाता है. ये सामान्य क्लास हैं, जिनका इस्तेमाल उन तरीकों के लिए रिटर्न टाइप के तौर पर किया जाता है जिनके लिए पहले से सटीक टाइप तय नहीं किया जा सकता. उदाहरण के लिए, दस्तावेज़ सेवा का तरीका, Body.getChild(childIndex)
एक सामान्य Element
ऑब्जेक्ट दिखाता है.
Element
एक ऐसा इंटरफ़ेस है जो किसी दूसरी क्लास को दिखाता है. यह क्लास, हो सकता है कि Paragraph
या Table
हो. इंटरफ़ेस ऑब्जेक्ट, आम तौर पर अपने-आप काम के नहीं होते. इसके बजाय, आम तौर पर ऑब्जेक्ट को किसी खास क्लास में वापस कास्ट करने के लिए, Element.asParagraph()
जैसे किसी तरीके को कॉल करना होता है.
एनम के साथ काम करना
ज़्यादातर सेवाओं में, नाम वाली वैल्यू के कुछ एनम (एनोटेट किए गए टाइप) शामिल होते हैं. उदाहरण के लिए, Drive सेवा यह तय करने के लिए कि किन उपयोगकर्ताओं के पास फ़ाइल या फ़ोल्डर का ऐक्सेस है, सूची Access
और सूची Permission
का इस्तेमाल करती है. ज़्यादातर मामलों में, इन एन्सम को ग्लोबल ऑब्जेक्ट से ऐक्सेस किया जाता है. उदाहरण के लिए, Folder.setSharing(accessType, permissionType)
के लिए कॉल कुछ ऐसा दिखता है:
// Creates a folder that anyone on the Internet can read from and write to. (Domain administrators can
// prohibit this setting for Google Workspace users.)
var folder = DriveApp.createFolder('Shared Folder');
folder.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT);