Apps Script प्रोजेक्ट, स्क्रिप्ट और उसके काम के बारे में कुछ खास जानकारी कॉन्फ़िगर करने के लिए, मेनिफ़ेस्ट फ़ाइल का इस्तेमाल करता है. मेनिफ़ेस्ट को देखने और उसमें बदलाव करने का तरीका जानने के लिए, मेनिफ़ेस्ट देखें.
इस दस्तावेज़ में, Google Workspace ऐड-ऑन के मेनिफ़ेस्ट को कॉन्फ़िगर करने की जानकारी दी गई है.
Google Workspace ऐड-ऑन के लिए मेनिफ़ेस्ट स्ट्रक्चर
Google Workspace ऐड-ऑन, Apps Script प्रोजेक्ट के एडमिन फ़ाइल का इस्तेमाल करके, ऐड-ऑन के दिखने के तरीके और उसके व्यवहार को तय करता है.
Google Workspace ऐड-ऑन की मेनिफ़ेस्ट प्रॉपर्टी को
मेनिफ़ेस्ट ऑब्जेक्ट स्ट्रक्चर के addOns
सेक्शन में रखा जाता है.
Google Workspace ऐड-ऑन मेनिफ़ेस्ट का नमूना
नीचे दिए गए मेनिफ़ेस्ट के नमूने में मेनिफ़ेस्ट फ़ाइल का सेक्शन दिखता है. यह सेक्शन, Google Workspace ऐड-ऑन की जानकारी देता है. इसमें ये चीज़ें भी शामिल हैं:
- मेनिफ़ेस्ट के
addOns.common
सेक्शन में, ऐड-ऑन के नाम, लोगो के यूआरएल, रंग, और दूसरी सामान्य, होस्ट-इंडिपेंडेंट सेटिंग तय होती हैं. - मेनिफ़ेस्ट एक सामान्य होम पेज के बारे में बताता है, लेकिन यह Calendar, Drive, Docs, Sheets, और Slides के हिसाब से होम पेज के बारे में भी बताता है. Gmail डिफ़ॉल्ट होम पेज का इस्तेमाल करता है.
- नमूना मेनिफ़ेस्ट की सेटिंग से यह सुविधा चालू होती है:
- Calendar
eventOpen
औरeventUpdated
ट्रिगर और दो Calendar कॉन्फ़्रेंस सॉल्यूशन. - दो वैश्विक कार्रवाइयां.
- Drive
onItemsSelectedTrigger
. - Gmail लिखें कार्रवाई और प्रासंगिक ट्रिगर.
- Docs, Sheets, और Slides के लिए, फ़ाइल के हिसाब से अलग-अलग इंटरफ़ेस.
- Calendar
oauthScopes
फ़ील्ड, प्रोजेक्ट के लिए अनुमति देने के दायरे को सेट करता है. आम तौर पर, यह ऐड-ऑन के लिए ज़रूरी होता है.urlFetchWhitelist
फ़ील्ड एक वैकल्पिक फ़ील्ड है, जो यह पक्का करता है कि फ़ेच किए गए सभी एंडपॉइंट, एचटीटीपीएस यूआरएल प्रीफ़िक्स की तय सूची से मेल खाते हों. ज़्यादा जानकारी के लिए, अनुमति वाले यूआरएल देखें.
नमूने में मौजूद लिंक, मेनिफ़ेस्ट रेफ़रंस दस्तावेज़ में उस फ़ील्ड के ब्यौरे पर ले जाते हैं.
// Sample configuration of the addOns section in a manifest file: { "addOns": { "calendar": { "createSettingsUrlFunction": "getConferenceSettingsPageUrl", "conferenceSolution": [{ "id": "my-video-conf", "logoUrl": "https://lh3.googleusercontent.com/...", "name": "My Video Conference", "onCreateFunction": "onCreateMyVideoConference" }, { "id": "my-streamed-conf", "logoUrl": "https://lh3.googleusercontent.com/...", "name": "My Streamed Conference", "onCreateFunction": "onCreateMyStreamedConference" }], "currentEventAccess": "READ_WRITE", "eventOpenTrigger": { "runFunction": "onCalendarEventOpen" }, "eventUpdateTrigger": { "runFunction": "onCalendarEventUpdate" }, "eventAttachmentTrigger": { "label": "My Event Attachment", "runFunction": "onCalendarEventAddAttachment" }, "homepageTrigger": { "runFunction": "onCalendarHomePageOpen", "enabled": true } }, "common": { "homepageTrigger": { "runFunction": "onDefaultHomePageOpen", "enabled": true }, "layoutProperties": { "primaryColor": "#ff392b", "secondaryColor": "#d68617" }, "logoUrl": "https://ssl.gstatic.com/docs/script/images/logo/script-64.png", "name": "Demo Google Workspace Add-on", "openLinkUrlPrefixes": [ "https://mail.google.com/", "https://script.google.com/a/google.com/d/", "https://drive.google.com/a/google.com/file/d/", "https://en.wikipedia.org/wiki/", "https://www.example.com/" ], "universalActions": [{ "label": "Open settings", "runFunction": "getSettingsCard" }, { "label": "Open Help URL", "openLink": "https://www.example.com/help" }], "useLocaleFromApp": true }, "drive": { "homepageTrigger": { "runFunction": "onDriveHomePageOpen", "enabled": true }, "onItemsSelectedTrigger": { "runFunction": "onDriveItemsSelected" } }, "gmail": { "composeTrigger": { "selectActions": [ { "text": "Add images to email", "runFunction": "getInsertImageComposeCards" } ], "draftAccess": "METADATA" }, "contextualTriggers": [ { "unconditional": {}, "onTriggerFunction": "onGmailMessageOpen" } ] }, "docs": { "homepageTrigger": { "runFunction": "onEditorsHomepage" }, "onFileScopeGrantedTrigger": { "runFunction": "onFileScopeGrantedEditors" } }, "sheets": { "homepageTrigger": { "runFunction": "onEditorsHomepage" }, "onFileScopeGrantedTrigger": { "runFunction": "onFileScopeGrantedEditors" } }, "slides": { "homepageTrigger": { "runFunction": "onEditorsHomepage" }, "onFileScopeGrantedTrigger": { "runFunction": "onFileScopeGrantedEditors" } }, "oauthScopes": [ "https://www.googleapis.com/auth/calendar.addons.execute", "https://www.googleapis.com/auth/calendar.addons.current.event.read", "https://www.googleapis.com/auth/calendar.addons.current.event.write", "https://www.googleapis.com/auth/drive.addons.metadata.readonly", "https://www.googleapis.com/auth/gmail.addons.current.action.compose", "https://www.googleapis.com/auth/gmail.addons.current.message.metadata", "https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/script.external_request", "https://www.googleapis.com/auth/script.locale", "https://www.googleapis.com/auth/script.scriptapp", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/documents.currentonly", "https://www.googleapis.com/auth/spreadsheets.currentonly", "https://www.googleapis.com/auth/presentations.currentonly" ], "urlFetchWhitelist": [ "https://www.example.com/myendpoint/" ], }
जिन यूआरएल को अनुमति मिली है उनकी सूची
आप अनुमति वाली सूची का इस्तेमाल करके, ऐसे खास यूआरएल की जानकारी दे सकते हैं जिन्हें स्क्रिप्ट या ऐड-ऑन का ऐक्सेस पहले से मिल चुका है. जिन लोगों या संगठनों को अनुमति मिली है उनकी सूची, उपयोगकर्ता के डेटा को सुरक्षित रखती है. जब आप अनुमति वाली सूची तय करते हैं, तो स्क्रिप्ट प्रोजेक्ट ऐसे यूआरएल को ऐक्सेस नहीं कर सकते जिन्हें अनुमति नहीं मिली है.
जब आपकी स्क्रिप्ट या ऐड-ऑन ये कार्रवाइयां करता है, तब आप अनुमति वाली सूची का इस्तेमाल करते हैं:
- Apps Script
UrlFetch
सेवा का इस्तेमाल करके, बाहरी जगह (जैसे कि एचटीटीपीएस एंडपॉइंट) से जानकारी लाता है या उसे फ़ेच करता है. जिन यूआरएल को अनुमति मिली है उनकी सूची फ़ेच करने के लिए, अपनी मेनिफ़ेस्ट फ़ाइल मेंurlFetchWhitelist
फ़ील्ड शामिल करें. - जब कोई उपयोगकर्ता, किसी कार्रवाई (Google Workspace ऐड-ऑन पर क्लिक करता है या किसी ऐसे यूआरएल को दिखाता है जो Google से बाहर के यूआरएल पर ले जाता है) पर कोई यूआरएल दिखता है, तो उस यूआरएल को खोलता या खोलता है. अनुमति वाली सूची में शामिल यूआरएल को खोलने के लिए, अपनी मेनिफ़ेस्ट फ़ाइल में,
addOns.common.openLinkUrlPrefixes
फ़ील्ड शामिल करें.
अनुमति वाली सूची में प्रीफ़िक्स जोड़ना
जब आप अपनी मेनिफ़ेस्ट फ़ाइल (addOns.common.openLinkUrlPrefixes
या urlFetchWhitelist
फ़ील्ड को शामिल करके) में अनुमति वाली सूची चुनते हैं, तो आपको यूआरएल प्रीफ़िक्स की एक सूची शामिल करनी होगी. मेनिफ़ेस्ट में जोड़े गए प्रीफ़िक्स, नीचे दी गई ज़रूरी शर्तों के मुताबिक होने चाहिए:
- हर प्रीफ़िक्स एक मान्य यूआरएल होना चाहिए.
- हर प्रीफ़िक्स के लिए,
https://
का इस्तेमाल किया जाना चाहिए, न किhttp://
का. - हर प्रीफ़िक्स में पूरा डोमेन होना चाहिए.
- हर प्रीफ़िक्स में खाली पाथ होना चाहिए. उदाहरण के लिए,
https://www.google.com/
मान्य है, लेकिनhttps://www.google.com
मान्य नहीं है. - यूआरएल सबडोमेन के प्रीफ़िक्स से मिलान करने के लिए, वाइल्डकार्ड का इस्तेमाल किया जा सकता है.
- सभी लिंक का मिलान करने के लिए,
addOns.common.openLinkUrlPrefixes
फ़ील्ड में एक सिंगल*
वाइल्डकार्ड का इस्तेमाल किया जा सकता है. हालांकि, हम इसका सुझाव नहीं देते, क्योंकि इससे उपयोगकर्ता का डेटा खतरे में पड़ सकता है. साथ ही, ऐड-ऑन समीक्षा की प्रोसेस लंबी हो सकती है. वाइल्डकार्ड का इस्तेमाल सिर्फ़ तब करें, जब आपके ऐड-ऑन की सुविधा उसके लिए ज़रूरी हो.
यह तय करते समय कि कोई यूआरएल, अनुमति वाली सूची में शामिल किसी प्रीफ़िक्स से मेल खाता है या नहीं, नीचे दिए गए नियम लागू होते हैं:
- पाथ मैचिंग केस-सेंसिटिव (बड़े और छोटे अक्षरों में अंतर) होती है.
- अगर प्रीफ़िक्स यूआरएल के जैसा है, तो यह मैच होता है.
- अगर यूआरएल प्रीफ़िक्स के जैसा ही है या प्रीफ़िक्स का चाइल्ड है, तो यह मैच होता है.
उदाहरण के लिए, प्रीफ़िक्स https://example.com/foo
इन यूआरएल से मेल खाता है:
https://example.com/foo
https://example.com/foo/
https://example.com/foo/bar
https://example.com/foo?bar
https://example.com/foo#bar
वाइल्डकार्ड का इस्तेमाल करना
आप urlFetchWhitelist
और addOns.common.openLinkUrlPrefixes
फ़ील्ड दोनों के लिए सबडोमेन का मिलान करने के लिए, सिंगल वाइल्डकार्ड वर्ण (*
) का इस्तेमाल कर सकते हैं. एक से ज़्यादा वाइल्डकार्ड का इस्तेमाल एक से ज़्यादा सबडोमेन से मिलान करने के लिए नहीं किया जा सकता.
इसके अलावा, वाइल्डकार्ड को यूआरएल के प्रीफ़िक्स के बारे में बताना ज़रूरी है.
उदाहरण के लिए, प्रीफ़िक्स https://*.example.com/foo
इन यूआरएल से मेल खाता है:
https://subdomain.example.com/foo
https://any.number.of.subdomains.example.com/foo
प्रीफ़िक्स https://*.example.com/foo
इन यूआरएल से मेल नहीं खाता:
https://subdomain.example.com/bar
(उपसर्ग मेल नहीं खाता)https://example.com/foo
(कम से कम एक सबडोमेन मौजूद होना चाहिए)
जब मेनिफ़ेस्ट फ़ाइल को सेव करने की कोशिश की जाती है, तो प्रीफ़िक्स के कुछ नियम लागू हो जाते हैं. उदाहरण के लिए, जब आप डेटा को सेव करने की कोशिश करते हैं, तो नीचे दिए गए प्रीफ़िक्स गड़बड़ी की वजह से गड़बड़ी का मैसेज दिखाते हैं:
https://*.*.example.com/foo
(एक से ज़्यादा वाइल्डकार्ड नहीं हैं)https://subdomain.*.example.com/foo
( वाइल्डकार्ड का इस्तेमाल, प्रीफ़िक्स के तौर पर किया जाना चाहिए)