ऐड-ऑन, मेनिफ़ेस्ट फ़ाइल का इस्तेमाल करता है का इस्तेमाल करें.
इस दस्तावेज़ में मेनिफ़ेस्ट को कॉन्फ़िगर करने का तरीका बताया गया है Google Workspace ऐड-ऑन.
Google Workspace ऐड-ऑन के लिए मेनिफ़ेस्ट स्ट्रक्चर
Google Workspace ऐड-ऑन, मेनिफ़ेस्ट फ़ाइल का इस्तेमाल करता है, ताकि ऐड-ऑन और व्यवहार.
Google Workspace ऐड-ऑन के लिए मेनिफ़ेस्ट प्रॉपर्टी
इसे मेनिफ़ेस्ट ऑब्जेक्ट स्ट्रक्चर के addOns
सेक्शन में व्यवस्थित किया गया है.
- Apps Script मेनिफ़ेस्ट फ़ाइलों के बारे में जानकारी के लिए, यह लेख पढ़ें मेनिफ़ेस्ट का स्ट्रक्चर.
- इसके साथ बनाए गए ऐड-ऑन के लिए मेनिफ़ेस्ट फ़ाइलों के बारे में जानकारी के लिए
एचटीटीपी एंडपॉइंट, REST रिसॉर्स:
projects.deployments
देखें
Google Workspace ऐड-ऑन मेनिफ़ेस्ट कॉन्फ़िगरेशन का सैंपल
नीचे दिया गया मेनिफ़ेस्ट सैंपल, मेनिफ़ेस्ट फ़ाइल का वह सेक्शन दिखाता है जिसमें Google Workspace ऐड-ऑन के साथ-साथ ये सुविधाएं भी शामिल हैं:
addOns.common
मेनिफ़ेस्ट के सेक्शन में नाम, लोगो का यूआरएल, रंग वगैरह के बारे में जानकारी होती है सामान्य, होस्ट-इंडिपेंडेंट सेटिंग.- मेनिफ़ेस्ट सामान्य होम पेज के बारे में बताता है, लेकिन यह भी बताता है कि Calendar, Drive, Docs, शीट और Slides के हिसाब से होम पेज. Gmail डिफ़ॉल्ट होम पेज का इस्तेमाल करता है.
- मेनिफ़ेस्ट की नमूना सेटिंग से ये सुविधाएं चालू होती हैं:
- कैलेंडर
eventOpen
औरeventUpdated
ट्रिगर. - (सिर्फ़ Apps स्क्रिप्ट) दो कैलेंडर कॉन्फ़्रेंस सलूशन.
- दुनिया भर में इस्तेमाल होने वाली दो कार्रवाइयां.
onItemsSelectedTrigger
ड्राइव.- Gmail लेखन कार्रवाई और प्रासंगिक ट्रिगर.
- Docs का
linkPreviewTriggers
ऑब्जेक्ट. इस ट्रिगर के बारे में जानने के लिए, स्मार्ट चिप की मदद से लिंक की झलक देखना लेख पढ़ें. - Docs
createActionTriggers
ऑब्जेक्ट. इस ट्रिगर के बारे में जानने के लिए, @ मेन्यू से तीसरे पक्ष के संसाधन बनाना देखें. - Docs, Sheets, और Sheets के लिए फ़ाइल के हिसाब से और Slides.
- कैलेंडर
oauthScopes
फ़ील्ड प्रोजेक्ट की अनुमति के दायरे सेट करता है (आम तौर पर, ऐड-ऑन).- (सिर्फ़ Apps स्क्रिप्ट)
urlFetchWhitelist
फ़ील्ड एक ऐसा फ़ील्ड है जो पक्का करता है कि फ़ेच किए गए एंडपॉइंट किसी खास एंडपॉइंट से मेल खाते हों एचटीटीपीएस यूआरएल प्रीफ़िक्स की सूची. ज़्यादा जानकारी के लिए, यह देखें जिन यूआरएल को अनुमति दी गई है उनकी सूची में शामिल यूआरएल.
सैंपल में मौजूद लिंक, प्रॉडक्ट के ब्यौरे पर ले जाते हैं संबंधित फ़ील्ड में उस फ़ील्ड की Apps Script के लिए मेनिफ़ेस्ट रेफ़रंस दस्तावेज़ और एचटीटीपी Google Workspace ऐड-ऑन.
Apps Script
{ "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://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" }, "linkPreviewTriggers": [ { "runFunction": "onLinkPreview", "patterns": [ { "hostPattern": "example.com", "pathPrefix": "example-path" } ], "labelText": "Link preview", "localizedLabelText": { "es": "Link preview localized in Spanish" }, "logoUrl": "https://www.example.com/images/smart-chip-icon.png" } ], "createActionTriggers": [ { "id": "exampleId", "labelText": "Example label text", "localizedLabelText": { "es": "Label text localized in Spanish" }, "runFunction": "exampleFunction", "logoUrl": "https://www.example.com/images/case.png" } ] }, "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", "https://www.googleapis.com/auth/workspace.linkpreview" ], "urlFetchWhitelist": [ "https://www.example.com/myendpoint/" ] }
HTTP
{ "addOns": { "calendar": { "currentEventAccess": "READ_WRITE", "eventOpenTrigger": { "runFunction": "https://myownpersonaldomain.com/mypage?trigger=onCalendarEventOpen" }, "eventUpdateTrigger": { "runFunction": "https://myownpersonaldomain.com/mypage?trigger=onCalendarEventUpdate" }, "eventAttachmentTrigger": { "label": "My Event Attachment", "runFunction": "https://myownpersonaldomain.com/mypage?trigger=onCalendarEventAddAttachment" }, "homepageTrigger": { "runFunction": "https://myownpersonaldomain.com/mypage?trigger=onCalendarHomePageOpen", "enabled": true } }, "common": { "homepageTrigger": { "runFunction": "https://myownpersonaldomain.com/mypage?trigger=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://www.example.com/" ], "universalActions": [{ "label": "Open settings", "runFunction": "https://myownpersonaldomain.com/mypage?trigger=getSettingsCard" }, { "label": "Open Help URL", "openLink": "https://www.example.com/help" }], "useLocaleFromApp": true }, "drive": { "homepageTrigger": { "runFunction": "https://myownpersonaldomain.com/mypage?trigger=onDriveHomePageOpen", "enabled": true }, "onItemsSelectedTrigger": { "runFunction": "https://myownpersonaldomain.com/mypage?trigger=onDriveItemsSelected" } }, "gmail": { "composeTrigger": { "actions": [ { "label": "Add images to email", "runFunction": "https://myownpersonaldomain.com/mypage?trigger=getInsertImageComposeCards" } ], "draftAccess": "METADATA" }, "contextualTriggers": [ { "unconditional": {}, "onTriggerFunction": "https://myownpersonaldomain.com/mypage?trigger=onGmailMessageOpen" } ] }, "docs": { "homepageTrigger": { "runFunction": "https://myownpersonaldomain.com/mypage?trigger=onEditorsHomepage" }, "onFileScopeGrantedTrigger": { "runFunction": "https://myownpersonaldomain.com/mypage?trigger=onFileScopeGrantedEditors" }, "linkPreviewTriggers": [ { "runFunction": "https://myownpersonaldomain.com/mypage?trigger=onLinkPreview", "patterns": [ { "hostPattern": "example.com", "pathPrefix": "example-path" } ], "labelText": "Link preview", "localizedLabelText": { "es": "Link preview localized in Spanish" }, "logoUrl": "https://www.example.com/images/smart-chip-icon.png" } ], "createActionTriggers": [ { "id": "exampleId", "labelText": "Example label text", "localizedLabelText": { "es": "Label text localized in Spanish" }, "runFunction": "https://myownpersonaldomain.com/mypage?trigger=onCreateAction", "logoUrl": "https://www.example.com/images/case.png" } ] }, "sheets": { "homepageTrigger": { "runFunction": "https://myownpersonaldomain.com/mypage?trigger=onEditorsHomepage" }, "onFileScopeGrantedTrigger": { "runFunction": "https://myownpersonaldomain.com/mypage?trigger=onFileScopeGrantedEditors" } }, "slides": { "homepageTrigger": { "runFunction": "https://myownpersonaldomain.com/mypage?trigger=onEditorsHomepage" }, "onFileScopeGrantedTrigger": { "runFunction": "https://myownpersonaldomain.com/mypage?trigger=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", "https://www.googleapis.com/auth/workspace.linkpreview" ] }
अनुमति वाली सूची में शामिल यूआरएल
अनुमति वाली सूची का इस्तेमाल करके, उन यूआरएल की जानकारी दी जाती है जिन्हें ऐक्सेस करने की पहले से अनुमति मिली हुई है आपकी स्क्रिप्ट या ऐड-ऑन के हिसाब से. जिन लोगों या संगठनों को अनुमति मिली है उनकी सूची, उपयोगकर्ता को सुरक्षित रखने में मदद करती है data; अनुमति वाली सूची बनाने पर, स्क्रिप्ट प्रोजेक्ट ऐसे यूआरएल ऐक्सेस नहीं कर सकते जिनमें अनुमति वाली सूची में शामिल नहीं किया गया.
टेस्ट डिप्लॉयमेंट इंस्टॉल करते समय, इस फ़ील्ड की वैल्यू सबमिट करना ज़रूरी नहीं है. हालांकि, इसकी ज़रूरत तब पड़ती है, जब तो अलग-अलग वर्शन बनाकर डिप्लॉयमेंट किया जा सकता है.
स्क्रिप्ट या ऐड-ऑन के काम करने के दौरान, अनुमति वाली सूची का इस्तेमाल किया जाता है ये कार्रवाइयां की जा सकती हैं:
- किसी बाहरी जगह (जैसे कि एचटीटीपीएस) से जानकारी हासिल करता है या उसे फ़ेच करता है
एंडपॉइंट) 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
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है (वाइल्डकार्ड का इस्तेमाल सबसे पहले प्रीफ़िक्स के तौर पर किया जाना चाहिए)