Editor के ऐड-ऑन के लिए अनुमति के दायरे

उपयोगकर्ताओं को उन ऐड-ऑन और अन्य ऐप्लिकेशन को अनुमति देनी होगी जो उनका डेटा ऐक्सेस करते हैं या उनकी ओर से कार्रवाई करते हैं. जब कोई उपयोगकर्ता पहली बार किसी ऐड-ऑन को चलाता है, तो ऐड-ऑन का यूज़र इंटरफ़ेस (यूआई) अनुमति देने का प्रॉम्प्ट दिखाता है. इससे अनुमति देने की प्रोसेस शुरू होती है.

इस फ़्लो के दौरान, प्रॉम्प्ट में उपयोगकर्ता को बताया जाता है कि ऐप्लिकेशन को किस काम के लिए अनुमति चाहिए. उदाहरण के लिए, किसी ऐड-ऑन को उपयोगकर्ता के ईमेल मैसेज पढ़ने या उसके कैलेंडर में इवेंट बनाने की अनुमति चाहिए. ऐड-ऑन का स्क्रिप्ट प्रोजेक्ट, इन अलग-अलग अनुमतियों को OAuth स्कोप के तौर पर तय करता है.

यूआरएल स्ट्रिंग का इस्तेमाल करके, अपने मेनिफ़ेस्ट में स्कोप का एलान किया जाता है. अनुमति देने की प्रोसेस के दौरान, Apps Script उपयोगकर्ता को स्कोप के बारे में ऐसी जानकारी दिखाता है जिसे आसानी से समझा जा सकता है. उदाहरण के लिए, आपका ऐड-ऑन "मौजूदा दस्तावेज़ पढ़ें" स्कोप का इस्तेमाल कर सकता है. इसे आपके मेनिफ़ेस्ट में https://www.googleapis.com/auth/documents.currentonly के तौर पर लिखा गया है. अनुमति देने की प्रोसेस के दौरान, इस स्कोप वाला ऐड-ऑन उपयोगकर्ता से यह अनुमति मांगता है कि वह ऐड-ऑन को यह काम करने की अनुमति दे: उन दस्तावेज़ों को देखना और मैनेज करना जिनमें इस ऐप्लिकेशन को इंस्टॉल किया गया है.

Apps Script, अपनी अलग-अलग सेवाओं के लिए जिन स्कोप का इस्तेमाल करती है वे संबंधित एपीआई के इस्तेमाल किए गए स्कोप से मेल खाते हैं. उदाहरण के लिए, Apps Script की Calendar service, Calendar API के कई स्कोप का इस्तेमाल करती है. Apps Script की रेफ़रंस गाइड में, Apps Script की किसी सेवा के खास तरीकों के लिए ज़रूरी स्कोप देखे जा सकते हैं.

स्कोप देखना

यहां दिए गए तरीके से, यह देखा जा सकता है कि आपके स्क्रिप्ट प्रोजेक्ट को फ़िलहाल किन स्कोप की ज़रूरत है:

  1. स्क्रिप्ट प्रोजेक्ट खोलें.
  2. बाईं ओर, खास जानकारी पर क्लिक करें.
  3. "प्रोजेक्ट के OAuth स्कोप" में जाकर, स्कोप देखें.

प्रोजेक्ट मेनिफ़ेस्ट में, स्क्रिप्ट प्रोजेक्ट के मौजूदा स्कोप भी देखे जा सकते हैं. इसके लिए, oauthScopes फ़ील्ड में जाएं. हालांकि, ऐसा सिर्फ़ तब किया जा सकता है, जब आपने उन स्कोप को साफ़ तौर पर सेट किया हो.

साफ़ तौर पर स्कोप सेट करना

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

उदाहरण के लिए, Apps Script किसी ऐड-ऑन स्क्रिप्ट प्रोजेक्ट को डिफ़ॉल्ट रूप से https://mail.google.com का दायरा दे सकता है. जब कोई उपयोगकर्ता इस स्कोप के साथ किसी स्क्रिप्ट प्रोजेक्ट को अनुमति देता है, तो प्रोजेक्ट को उपयोगकर्ता के Gmail खाते का पूरा ऐक्सेस मिल जाता है. पब्लिश किए गए ऐड-ऑन के लिए, आपको इस स्कोप को ज़्यादा सीमित सेट से बदलना होगा. यह सेट, ऐड-ऑन की ज़रूरतों को पूरा करता हो और इससे ज़्यादा न हो.

स्क्रिप्ट प्रोजेक्ट के लिए इस्तेमाल किए जाने वाले स्कोप को साफ़ तौर पर सेट किया जा सकता है. इसके लिए, आपको स्क्रिप्ट प्रोजेक्ट की मेनिफ़ेस्ट फ़ाइल में बदलाव करना होगा. मेनिफ़ेस्ट फ़ील्ड oauthScopes, ऐड-ऑन के इस्तेमाल किए गए सभी स्कोप का कलेक्शन होता है. अपने प्रोजेक्ट के स्कोप सेट करने के लिए, यह तरीका अपनाएं:

  1. यह देखना कि आपका ऐड-ऑन किन स्कोप का इस्तेमाल करता है. तय करें कि क्या बदलाव करने हैं. जैसे, कम स्कोप का इस्तेमाल करना.
  2. अपने ऐड-ऑन की मेनिफ़ेस्ट फ़ाइल खोलें.
  3. oauthScopes लेबल वाले टॉप-लेवल फ़ील्ड का पता लगाएं. अगर यह मौजूद नहीं है, तो इसे जोड़ा जा सकता है.
  4. oauthScopes फ़ील्ड, स्ट्रिंग का एक अरे तय करता है. आपके प्रोजेक्ट में इस्तेमाल होने वाले स्कोप सेट करने के लिए, इस ऐरे के कॉन्टेंट को उन स्कोप से बदलें जिनका इस्तेमाल आपको करना है. उदाहरण के लिए, Sheets को बेहतर बनाने वाले एडिटर ऐड-ऑन के लिए, आपको यह जानकारी मिल सकती है:

     {
       ...
       "oauthScopes": [
         "https://www.googleapis.com/auth/script.container.ui",
         "https://www.googleapis.com/auth/spreadsheets"
       ],
       ...
     }
    

  5. मेनिफ़ेस्ट फ़ाइल में किए गए बदलावों को सेव करें.

OAuth की पुष्टि

कुछ संवेदनशील OAuth स्कोप का इस्तेमाल करने के लिए, आपको ऐड-ऑन को पब्लिश करने से पहले, OAuth क्लाइंट की पुष्टि करानी पड़ सकती है. ज़्यादा जानकारी के लिए, यहां दी गई गाइड देखें:

पाबंदी वाले स्कोप

कुछ स्कोप पाबंदी वाले होते हैं. इन पर अतिरिक्त नियम लागू होते हैं, ताकि उपयोगकर्ता के डेटा को सुरक्षित रखा जा सके. अगर आपको Gmail या Editor का ऐसा ऐड-ऑन पब्लिश करना है जो एक या उससे ज़्यादा प्रतिबंधित स्कोप का इस्तेमाल करता है, तो ऐड-ऑन को पब्लिश करने से पहले, यह ज़रूरी है कि वह बताई गई सभी पाबंदियों का पालन करता हो.

पब्लिश करने से पहले, पाबंदी वाले स्कोप की पूरी सूची देखें. अगर आपका ऐड-ऑन इनमें से किसी भी एपीआई का इस्तेमाल करता है, तो आपको पब्लिश करने से पहले, एपीआई के कुछ स्कोप के लिए तय की गई अतिरिक्त शर्तों का पालन करना होगा.

Visual Studio Code के लिए Google Workspace Developer Tools एक्सटेंशन, सभी स्कोप के लिए डाइग्नोस्टिक जानकारी देता है. इसमें स्कोप का ब्यौरा और यह जानकारी शामिल होती है कि यह संवेदनशील है या इस पर पाबंदी है.

एडिटर ऐड-ऑन के स्कोप

Editor ऐड-ऑन बनाते समय, ज़रूरी स्कोप का पता Google Apps Script सेवा और उन तरीकों से चलता है जिनका इस्तेमाल ऐड-ऑन कोड करता है. उदाहरण के लिए, Google Sheets के किसी ऐड-ऑन को अलग-अलग शीट से जानकारी पढ़ने के लिए, https://www.googleapis.com/auth/spreadsheets.readonly स्कोप की ज़रूरत पड़ सकती है.

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

अगर आपने स्कोप साफ़ तौर पर सेट नहीं किए हैं और आपका एडिटर ऐड-ऑन सिर्फ़ खुली हुई एडिटर फ़ाइल को पढ़ता या उसमें लिखता है, तो अपने स्क्रिप्ट प्रोजेक्ट की किसी एक फ़ाइल में यह टिप्पणी जोड़ें:

/**
 * @OnlyCurrentDoc
 */

इस टिप्पणी से Apps Script को एडिटर फ़ाइल के स्कोप को सीमित करने के लिए कहा जाता है. यह currentonly पर सेट होता है. उदाहरण के लिए, अगर आपने इस टिप्पणी को Sheets ऐड-ऑन स्क्रिप्ट प्रोजेक्ट फ़ाइल में जोड़ा है, तो इसका मतलब है कि ऐड-ऑन को सिर्फ़ खुली हुई शीट पर काम करने की अनुमति चाहिए. इसके अलावा, उपयोगकर्ता के Google Drive में मौजूद किसी अन्य Sheets पर काम करने की अनुमति नहीं चाहिए. इसके उलट, अगर आपके Sheets ऐड-ऑन को ऐसी शीट में डेटा पढ़ना या लिखना है जिसे उपयोगकर्ता ने खोला नहीं है, तो आपको इस टिप्पणी का इस्तेमाल नहीं करना चाहिए.