पहले से मौजूद Google सेवाएं

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 सिंटैक्स और सुविधाओं के साथ काम करता है. राइनो का रनटाइम पुराने JavaScript 1.6 स्टैंडर्ड के साथ-साथ 1.7 और 1.8 की कुछ सुविधाओं पर आधारित होता है. अपनी स्क्रिप्ट के साथ इस्तेमाल करने के लिए, अपने हिसाब से रनटाइम चुनें. हालांकि, हमारा सुझाव है कि आप V8 रनटाइम का इस्तेमाल करें.

हर रनटाइम, पहले से मौजूद और Google की बेहतर सेवाओं के साथ-साथ आपकी स्क्रिप्ट में उपलब्ध JavaScript क्लास और ऑब्जेक्ट के साथ भी काम करता है. आपकी स्क्रिप्ट, Array, Date, RegExp, वगैरह, और Math और Object ग्लोबल ऑब्जेक्ट जैसे सामान्य ऑब्जेक्ट का इस्तेमाल कर सकती हैं.

ऑटोकंप्लीट की सुविधा का इस्तेमाल करना

स्क्रिप्ट एडिटर, "कॉन्टेंट असिस्ट" की सुविधा देता है. इसे आम तौर पर "ऑटोकंप्लीट" सुविधा कहा जाता है. यह ग्लोबल ऑब्जेक्ट के साथ-साथ, स्क्रिप्ट के मौजूदा संदर्भ में मान्य तरीकों और ईनम की जानकारी देता है. जब भी किसी ग्लोबल ऑब्जेक्ट, ईनम या मेथड कॉल के बाद ऐसा पीरियड टाइप किया जाता है जो Apps Script क्लास दिखाता है, तो ऑटोकंप्लीट की सुविधा वाले सुझाव अपने-आप दिखते हैं. उदाहरण के लिए:

  • अगर किसी ग्लोबल ऑब्जेक्ट का पूरा नाम टाइप किया जाता है या ऑटोकंप्लीट की सुविधा में से किसी एक को चुना जाता है, फिर . (एक पीरियड) टाइप करें, तो आपको उस क्लास के लिए सभी तरीके और enum दिखेंगे.
  • अगर आप कुछ वर्ण टाइप करते हैं, तो आपको उन वर्णों से शुरू होने वाले सभी मान्य सुझाव दिखेंगे.

ग्लोबल ऑब्जेक्ट को समझना

हर सेवा कम से कम एक ग्लोबल (टॉप लेवल) ऑब्जेक्ट उपलब्ध कराती है. उदाहरण के लिए, Gmail सेवा को सिर्फ़ GmailApp ऑब्जेक्ट से ऐक्सेस किया जाता है. कुछ सेवाएं कई ग्लोबल ऑब्जेक्ट मुहैया कराती हैं; उदाहरण के लिए, बुनियादी सेवा में चार ग्लोबल ऑब्जेक्ट शामिल होते हैं: Browser, Logger, MimeType, और Session.

कॉल करने के तरीके

करीब-करीब सभी पहले से मौजूद या बेहतर सेवाओं के ग्लोबल ऑब्जेक्ट में, डेटा या Apps Script क्लास दिखाने वाले तरीके शामिल होते हैं. स्क्रिप्ट इस फ़ॉर्मैट में मेथड कॉल करती हैं:

GlobalObjectName.methodName(argument1, argument2, ..., argumentN);

उदाहरण के लिए, कोई स्क्रिप्ट Gmail सेवा के sendEmail(recipient, subject, body) तरीके को इस तरह से कॉल करके ईमेल भेज सकती है:

GmailApp.sendEmail('claire@example.com', 'Subject line', 'This is the body.');

अगर कोई तरीका, Apps Script का कोई अन्य क्लास दिखाता है, तो मेथड से जुड़े कॉल को एक लाइन में चेन किया जा सकता है. (रिटर्न टाइप, ऑटोकंप्लीट और किसी तरीके के रेफ़रंस दस्तावेज़, दोनों में दिखाए जाते हैं.) उदाहरण के लिए, DocumentApp.create() तरीका Document दिखाता है. इसलिए, नीचे दिए गए दो सेक्शन एक जैसे होते हैं:

var doc = DocumentApp.create('New document');
var body = doc.getBody();
body.appendParagraph('New paragraph.');

// Same result as above.
DocumentApp.create('New document').getBody().appendParagraph('New paragraph.');

चाइल्ड क्लास को ऐक्सेस करना

हर सेवा में एक या एक से ज़्यादा चाइल्ड क्लास शामिल होती हैं, जिन्हें ग्लोबल ऑब्जेक्ट के रूप में ऐक्सेस नहीं किया जा सकता. इन क्लास को बनाने के लिए new कीवर्ड का इस्तेमाल नहीं किया जा सकता, जैसा कि Date जैसी स्टैंडर्ड JavaScript क्लास में किया जा सकता है. चाइल्ड क्लास को ऐक्सेस करने के लिए, इसे रिटर्न करने वाले तरीके का ही इस्तेमाल किया जा सकता है. अगर आपको किसी खास क्लास को ऐक्सेस करने का तरीका नहीं पता है, तो सेवा के रेफ़रंस दस्तावेज़ के रूट पेज पर जाएं और वह तरीका ढूंढें जो आपकी पसंद की क्लास दिखाता हो.

इंटरफ़ेस पर काम करना

कुछ सेवाओं में खास क्लास शामिल हैं, जिन्हें रेफ़रंस दस्तावेज़ में "इंटरफ़ेस" के तौर पर लेबल किया गया है. ये सामान्य क्लास, उन तरीकों के लिए रिटर्न टाइप के तौर पर इस्तेमाल की जाती हैं जिनमें प्रॉडक्ट का सटीक टाइप पहले से तय नहीं किया जा सकता. उदाहरण के लिए, दस्तावेज़ सेवा वाला तरीका Body.getChild(childIndex) एक जेनरिक Element ऑब्जेक्ट दिखाता है. Element एक ऐसा इंटरफ़ेस है जो किसी दूसरी क्लास को दिखाता है. इस क्लास को Paragraph या Table कहा जा सकता है. इंटरफ़ेस ऑब्जेक्ट अपने-आप काम नहीं करते. इसके बजाय, आपको ऑब्जेक्ट को सटीक क्लास में वापस कास्ट करने के लिए, Element.asParagraph() जैसे तरीके को कॉल करना है.

Enum के साथ काम करना

ज़्यादातर सेवाओं में, नाम वाली वैल्यू की कुछ ईनम (एन्युमरेटेड टाइप) शामिल होती हैं. उदाहरण के लिए, 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);