Google Apps Script, उपयोगकर्ता के डेटा, Google के अन्य सिस्टम, और बाहरी सिस्टम के साथ इंटरैक्ट करने के लिए, 30 से ज़्यादा बिल्ट-इन सेवाएं उपलब्ध कराता है. ये सेवाएं, JavaScript के स्टैंडर्ड Math
ऑब्जेक्ट की तरह ग्लोबल ऑब्जेक्ट के तौर पर उपलब्ध कराई जाती हैं. उदाहरण के लिए, जिस तरह Math
में random()
जैसे तरीके और PI
जैसे कॉन्स्टेंट उपलब्ध होते हैं उसी तरह Apps Script की Spreadsheet सेवा में openById(id)
जैसे तरीके, Range
जैसी क्लास (चाइल्ड ऑब्जेक्ट), और DataValidationCriteria
जैसे एनम उपलब्ध होते हैं.
Google Workspace प्रॉडक्ट को कंट्रोल करने वाली सेवाओं के लिए रेफ़रंस दस्तावेज़, इस साइट के साइडबार में "रेफ़रंस" हेडर के नीचे मौजूद "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 क्लास को वापस लाने वाले ग्लोबल ऑब्जेक्ट, 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.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
कीवर्ड का इस्तेमाल नहीं किया जा सकता. हालांकि, स्टैंडर्ड JavaScript क्लास के लिए ऐसा किया जा सकता है. जैसे, Date
. चाइल्ड क्लास को सिर्फ़ उस तरीके को कॉल करके ऐक्सेस किया जा सकता है जो इसे दिखाता है. अगर आपको किसी क्लास को ऐक्सेस करने का तरीका नहीं पता, तो सेवा के रेफ़रंस दस्तावेज़ के रूट पेज पर जाएं. इसके बाद, उस तरीके को ढूंढें जिससे आपको अपनी पसंद की क्लास मिल सके.
इंटरफ़ेस से जुड़ी समस्याएं
कुछ सेवाओं में खास क्लास शामिल होती हैं. इन्हें रेफ़रंस दस्तावेज़ में "इंटरफ़ेस" के तौर पर लेबल किया जाता है. ये सामान्य क्लास हैं. इनका इस्तेमाल उन तरीकों के लिए रिटर्न टाइप के तौर पर किया जाता है जो पहले से सटीक टाइप का पता नहीं लगा सकते. उदाहरण के लिए, Document service का तरीका Body.getChild(childIndex)
, सामान्य Element
ऑब्जेक्ट दिखाता है.
Element
एक ऐसा इंटरफ़ेस है जो किसी दूसरी क्लास को दिखाता है. यह Paragraph
या Table
हो सकता है. इंटरफ़ेस ऑब्जेक्ट, अपने-आप में बहुत कम काम के होते हैं. इसके बजाय, आम तौर पर आपको ऑब्जेक्ट को वापस किसी सटीक क्लास में कास्ट करने के लिए, Element.asParagraph()
जैसे किसी तरीके को कॉल करना होता है.
एनम के साथ काम करना
ज़्यादातर सेवाओं में, नाम वाली वैल्यू के कुछ इनम (गिनती किए गए टाइप) शामिल होते हैं. उदाहरण के लिए, Drive सेवा, Access
और Permission
इन enum का इस्तेमाल करके यह तय करती है कि किन उपयोगकर्ताओं के पास किसी फ़ाइल या फ़ोल्डर का ऐक्सेस है. ज़्यादातर मामलों में, इन enum को ग्लोबल ऑब्जेक्ट से ऐक्सेस किया जाता है. उदाहरण के लिए, 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);