लाइब्रेरी एक स्क्रिप्ट प्रोजेक्ट होता है. इसके फ़ंक्शन को अन्य स्क्रिप्ट में फिर से इस्तेमाल किया जा सकता है.
किसी लाइब्रेरी का ऐक्सेस पाना
अपने प्रोजेक्ट में कोई लाइब्रेरी शामिल करने के लिए, आपके पास कम से कम व्यू-लेवल का ऐक्सेस होना चाहिए. अगर आपको ऐसी लाइब्रेरी शामिल करनी है जिसका ऐक्सेस आपके पास नहीं है, तो उसके लेखक से संपर्क करें और ऐक्सेस का अनुरोध करें.
आपको उस लाइब्रेरी का स्क्रिप्ट आईडी चाहिए जिसे शामिल करना है. अगर आपके पास लाइब्रेरी का ऐक्सेस है, तो आपको स्क्रिप्ट आईडी, प्रोजेक्ट सेटिंग
पेज पर दिखेगा.अपने स्क्रिप्ट प्रोजेक्ट में लाइब्रेरी जोड़ना
- Apps Script एडिटर में बाईं ओर, "लाइब्रेरी" के बगल में, लाइब्रेरी जोड़ें पर क्लिक करें.
- "स्क्रिप्ट आईडी" फ़ील्ड में, लाइब्रेरी का स्क्रिप्ट आईडी चिपकाएं.
- खोजें पर क्लिक करें.
- वर्शन ड्रॉपडाउन पर क्लिक करें और इस्तेमाल करने के लिए लाइब्रेरी का वर्शन चुनें.
- देखें कि डिफ़ॉल्ट "पहचानकर्ता" का नाम वही है जो आपको इस लाइब्रेरी के साथ इस्तेमाल करना है. यह वह नाम है जिसका इस्तेमाल आपकी स्क्रिप्ट, लाइब्रेरी को रेफ़र करने के लिए करती है. उदाहरण के लिए, अगर आपने इसे
Test
पर सेट किया है, तो उस लाइब्रेरी के किसी तरीके को इस तरह कॉल किया जा सकता है:Test.libraryMethod()
. - जोड़ें पर क्लिक करें.
लाइब्रेरी का इस्तेमाल करना
शामिल की गई लाइब्रेरी का इस्तेमाल, डिफ़ॉल्ट सेवा की तरह करें. उदाहरण के लिए, अगर Test
आपकी लाइब्रेरी का आइडेंटिफ़ायर है, तो लाइब्रेरी में मौजूद तरीकों की सूची देखने के लिए, Test
टाइप करें. इसके तुरंत बाद, एक अवधि डालें.
शामिल की गई लाइब्रेरी के लिए रेफ़रंस दस्तावेज़ खोलने के लिए, यह तरीका अपनाएं:
स्क्रिप्ट एडिटर में बाईं ओर, लाइब्रेरी के नाम के बगल में मौजूद, ज़्यादा
> नए टैब में खोलें पर क्लिक करें.लाइब्रेरी हटाना
स्क्रिप्ट एडिटर के बाईं ओर, लाइब्रेरी के नाम के बगल में, ज़्यादा
> हटाएं > लाइब्रेरी हटाएं पर क्लिक करें.लाइब्रेरी अपडेट करना
लाइब्रेरी का वर्शन बदला जा सकता है या उसके आइडेंटिफ़ायर को अपडेट किया जा सकता है.
- एडिटर में बाईं ओर, "लाइब्रेरी" में जाकर, लाइब्रेरी के नाम पर क्लिक करें.
- बदलाव करने के बाद, सेव करें पर क्लिक करें.
लाइब्रेरी बनाना और उसे शेयर करना
अपने स्क्रिप्ट प्रोजेक्ट को लाइब्रेरी के तौर पर इस्तेमाल करने और शेयर करने के लिए, यहां दिया गया तरीका अपनाएं.
- अपनी स्क्रिप्ट का वर्शन वाला डिप्लॉयमेंट बनाएं.
- लाइब्रेरी के सभी संभावित उपयोगकर्ताओं के साथ, कम से कम व्यू-लेवल का ऐक्सेस शेयर करें.
- उन उपयोगकर्ताओं को स्क्रिप्ट आईडी दें. यह आईडी, प्रोजेक्ट सेटिंग पेज पर मौजूद होता है.
सबसे सही तरीके
लाइब्रेरी लिखते समय, इन दिशा-निर्देशों का पालन करें:
- अपने प्रोजेक्ट के लिए कोई ऐसा नाम चुनें जो समझ में आता हो. ऐसा इसलिए, क्योंकि जब आपकी लाइब्रेरी को अन्य लोग शामिल करते हैं, तब इसका इस्तेमाल डिफ़ॉल्ट आइडेंटिफ़ायर के तौर पर किया जाता है.
- अगर आपको अपनी स्क्रिप्ट के एक या उससे ज़्यादा तरीकों को लाइब्रेरी के उपयोगकर्ताओं के लिए न तो दिखाना है और न ही उन्हें इस्तेमाल करने देना है, तो तरीके के नाम के आखिर में अंडरस्कोर जोड़ें. उदाहरण के लिए,
myPrivateMethod_()
. - लाइब्रेरी के उपयोगकर्ताओं को सिर्फ़ गिनी जा सकने वाली ग्लोबल प्रॉपर्टी दिखती हैं. इसमें फ़ंक्शन के एलान,
var
की मदद से फ़ंक्शन के बाहर बनाए गए वैरिएबल, और ग्लोबल ऑब्जेक्ट पर साफ़ तौर पर सेट की गई प्रॉपर्टी शामिल हैं. उदाहरण के लिए,Object.defineProperty()
कोenumerable
पर सेट करकेfalse
, एक ऐसा सिंबल बनाया जाता है जिसका इस्तेमाल अपनी लाइब्रेरी में किया जा सकता है. हालांकि, यह सिंबल आपके उपयोगकर्ताओं के लिए उपलब्ध नहीं होता. अगर आपको अपनी लाइब्रेरी के उपयोगकर्ताओं को स्क्रिप्ट एडिटर में अपने-आप पूरा होने वाली सुविधा और अपने-आप जनरेट होने वाले दस्तावेज़ का इस्तेमाल करने की अनुमति देनी है, तो आपके पास अपने सभी फ़ंक्शन के लिए JSDoc स्टाइल वाला दस्तावेज़ होना चाहिए. यहां एक उदाहरण दिया गया है:
/** * Raises a number to the given power, and returns the result. * * @param {number} base the number we're raising to a power * @param {number} exp the exponent we're raising the base to * @return {number} the result of the exponential calculation */ function power(base, exp) { ... }
संसाधन का दायरा तय करना
लाइब्रेरी के साथ काम करते समय, दो तरह के संसाधन होते हैं: शेयर किए गए और शेयर नहीं किए गए. शेयर किए गए संसाधन का मतलब है कि लाइब्रेरी और शामिल की गई स्क्रिप्ट, दोनों के पास संसाधन के एक ही इंस्टेंस का ऐक्सेस होता है. इस डायग्राम में, उपयोगकर्ता प्रॉपर्टी के उदाहरण का इस्तेमाल करके, शेयर किए गए संसाधन को दिखाया गया है:
शेयर नहीं किए गए रिसॉर्स का मतलब है कि लाइब्रेरी और स्क्रिप्ट, दोनों के पास सिर्फ़ रिसॉर्स के अपने इंस्टेंस का ऐक्सेस होता है. हालांकि, कोई लाइब्रेरी अपने ऐसे संसाधनों का ऐक्सेस दे सकती है जिन्हें शेयर नहीं किया गया है. इसके लिए, लाइब्रेरी में ऐसे फ़ंक्शन होने चाहिए जो उन संसाधनों पर काम करते हों. यहां एक ऐसे फ़ंक्शन का उदाहरण दिया गया है जिसे आपको अपनी लाइब्रेरी में शामिल करना होगा, ताकि उसकी स्क्रिप्ट प्रॉपर्टी दिख सकें:
function getLibraryProperty(key) {
const scriptProperties = PropertiesService.getScriptProperties();
return scriptProperties.getProperty(key);
}
इस डायग्राम में, स्क्रिप्ट प्रॉपर्टी के उदाहरण का इस्तेमाल करके, शेयर नहीं की गई किसी संसाधन के बारे में बताया गया है:
इस टेबल में, शेयर किए गए और शेयर नहीं किए गए संसाधनों की सूची दी गई है. यह सूची सिर्फ़ आपके लिए है:
संसाधन | शेयर किया गया* | शेयर नहीं किया गया** | नोट |
---|---|---|---|
लॉक करें | लाइब्रेरी में बनाए जाने पर, यह इंस्टेंस सभी को दिखता है. इसमें स्क्रिप्ट भी शामिल हैं. | ||
स्क्रिप्ट गुण | लाइब्रेरी में बनाए जाने पर, यह इंस्टेंस सभी को दिखता है. इसमें स्क्रिप्ट भी शामिल हैं. | ||
कैश मेमोरी | लाइब्रेरी में बनाए जाने पर, यह इंस्टेंस सभी को दिखता है. इसमें स्क्रिप्ट भी शामिल हैं. | ||
ट्रिगर | लाइब्रेरी में बनाए गए सामान्य ट्रिगर, शामिल की गई स्क्रिप्ट से ट्रिगर नहीं होते हैं. | ||
ScriptApp | |||
UiApp |
|
||
उपयोगकर्ता प्रॉपर्टी | |||
लॉगर और एक्ज़ीक्यूशन ट्रांसक्रिप्ट | |||
साइटें, शीट, और अन्य कंटेनर | getActive() को कॉल करने पर, स्क्रिप्ट के साथ-साथ कंटेनर भी वापस मिल जाता है. |
||
MailApp और GmailApp | |||
* इसका मतलब है कि लाइब्रेरी के पास सुविधा/संसाधन का अपना इंस्टेंस नहीं है. इसके बजाय, यह उस स्क्रिप्ट से बनाए गए इंस्टेंस का इस्तेमाल कर रही है जिसने इसे शुरू किया है.
** इसका मतलब है कि लाइब्रेरी में संसाधन/सुविधा का अपना इंस्टेंस होता है. साथ ही, लाइब्रेरी का इस्तेमाल करने वाली सभी स्क्रिप्ट, उस इंस्टेंस को शेयर करती हैं और उनके पास उसका ऐक्सेस होता है. |
किसी लाइब्रेरी की जांच करना
अपनी लाइब्रेरी की जांच करने के लिए, हेड डिप्लॉयमेंट का इस्तेमाल करें. जिन लोगों के पास स्क्रिप्ट के एडिटर लेवल का ऐक्सेस होता है वे हेड डिप्लॉयमेंट का इस्तेमाल कर सकते हैं.
लाइब्रेरी को डीबग करना
किसी ऐसे प्रोजेक्ट में डीबगर का इस्तेमाल करते समय जिसमें कोई लाइब्रेरी शामिल हो, उस लाइब्रेरी के किसी फ़ंक्शन में जाया जा सकता है. कोड, व्यू-ओनली मोड में डीबगर में दिखता है और सही वर्शन में दिखता है.