उपयोगकर्ताओं को उन ऐड-ऑन और अन्य ऐप्लिकेशन को अनुमति देनी होगी जो उनके डेटा को ऐक्सेस करते हैं या उनकी ओर से कार्रवाई करते हैं. जब कोई उपयोगकर्ता पहली बार किसी ऐड-ऑन को चलाता है, तो ऐड-ऑन का यूज़र इंटरफ़ेस (यूआई) अनुमति देने के लिए एक प्रॉम्प्ट दिखाता है. इससे अनुमति देने की प्रोसेस शुरू होती है.
इस प्रोसेस के दौरान, प्रॉम्प्ट में उपयोगकर्ता को बताया जाता है कि ऐप्लिकेशन को किस काम के लिए अनुमति चाहिए. उदाहरण के लिए, किसी ऐड-ऑन को उपयोगकर्ता के ईमेल मैसेज को पढ़ने या उसके कैलेंडर में इवेंट बनाने की अनुमति चाहिए. ऐड-ऑन का स्क्रिप्ट प्रोजेक्ट, इन अलग-अलग अनुमतियों को OAuth स्कोप के तौर पर तय करता है.
यूआरएल स्ट्रिंग का इस्तेमाल करके, अपने मेनिफ़ेस्ट में स्कोप का एलान करें. अनुमति देने की प्रोसेस के दौरान, Apps Script उपयोगकर्ता को स्कोप के बारे में ऐसी जानकारी दिखाता है जिसे आसानी से समझा जा सकता है. उदाहरण के लिए, आपका ऐड-ऑन "मौजूदा दस्तावेज़ पढ़ें" स्कोप का इस्तेमाल कर सकता है. इसे आपके मेनिफ़ेस्ट में https://www.googleapis.com/auth/documents.currentonly
के तौर पर लिखा गया है. ऑथराइज़ेशन फ़्लो के दौरान, इस स्कोप वाला ऐड-ऑन, उपयोगकर्ता से ऐड-ऑन को यह अनुमति देने के लिए कहता है: उन दस्तावेज़ों को देखें और मैनेज करें जिनमें इस ऐप्लिकेशन को इंस्टॉल किया गया है.
स्कोप देखना
यहां दिए गए तरीके से, यह देखा जा सकता है कि आपके स्क्रिप्ट प्रोजेक्ट को फ़िलहाल किन स्कोप की ज़रूरत है:
- स्क्रिप्ट प्रोजेक्ट खोलें.
- बाईं ओर, खास जानकारी पर क्लिक करें.
- "प्रोजेक्ट के OAuth स्कोप" में जाकर, स्कोप देखें.
स्क्रिप्ट प्रोजेक्ट के मौजूदा स्कोप को प्रोजेक्ट मेनिफ़ेस्ट में भी देखा जा सकता है. इसके लिए, oauthScopes
फ़ील्ड में जाएं. हालांकि, ऐसा सिर्फ़ तब किया जा सकता है, जब आपने उन स्कोप को साफ़ तौर पर सेट किया हो.
साफ़ तौर पर स्कोप सेट करना
Apps Script, स्क्रिप्ट के कोड को स्कैन करके यह अपने-आप तय करती है कि स्क्रिप्ट को किन स्कोप की ज़रूरत है. ऐसा उन फ़ंक्शन कॉल के लिए किया जाता है जिनके लिए स्कोप की ज़रूरत होती है. ज़्यादातर स्क्रिप्ट के लिए यह तरीका सही है और इससे आपका समय बचता है. हालांकि, पब्लिश किए गए ऐड-ऑन के लिए, आपको स्कोप पर ज़्यादा कंट्रोल रखना चाहिए.
उदाहरण के लिए, Apps Script किसी ऐड-ऑन स्क्रिप्ट प्रोजेक्ट को डिफ़ॉल्ट रूप से https://mail.google.com
बहुत ज़्यादा अनुमतियां दे सकता है. जब कोई उपयोगकर्ता इस स्कोप के साथ किसी स्क्रिप्ट प्रोजेक्ट को अनुमति देता है, तो प्रोजेक्ट को उपयोगकर्ता के Gmail खाते का पूरा ऐक्सेस मिल जाता है. पब्लिश किए गए ऐड-ऑन के लिए, आपको इस स्कोप को ऐसे स्कोप से बदलना होगा जो ऐड-ऑन की ज़रूरतों को पूरा करता हो और उससे ज़्यादा न हो. ऐसा करना ज़रूरी है.
अपनी स्क्रिप्ट के प्रोजेक्ट के लिए, इस्तेमाल किए जाने वाले स्कोप को साफ़ तौर पर सेट किया जा सकता है. इसके लिए, आपको उसकी मेनिफ़ेस्ट फ़ाइल में बदलाव करना होगा. मेनिफ़ेस्ट फ़ील्ड oauthScopes
, ऐड-ऑन के इस्तेमाल किए गए सभी स्कोप का कलेक्शन होता है. अपने प्रोजेक्ट के स्कोप सेट करने के लिए, यह तरीका अपनाएं:
- देखें कि आपका ऐड-ऑन फ़िलहाल किन स्कोप का इस्तेमाल कर रहा है. यह तय करें कि क्या बदलाव करने हैं. जैसे, कम स्कोप का इस्तेमाल करना.
- अपने ऐड-ऑन की मेनिफ़ेस्ट फ़ाइल खोलें.
oauthScopes
लेबल वाला टॉप-लेवल फ़ील्ड ढूंढें. अगर यह मौजूद नहीं है, तो इसे जोड़ा जा सकता है.oauthScopes
फ़ील्ड, स्ट्रिंग का एक अरे तय करता है. आपके प्रोजेक्ट में इस्तेमाल होने वाले स्कोप सेट करने के लिए, इस ऐरे के कॉन्टेंट को उन स्कोप से बदलें जिनका इस्तेमाल आपको करना है. उदाहरण के लिए, Sheets को बेहतर बनाने वाले एडिटर ऐड-ऑन के लिए, आपके पास यह जानकारी हो सकती है:{ ... "oauthScopes": [ "https://www.googleapis.com/auth/script.container.ui", "https://www.googleapis.com/auth/spreadsheets" ], ... }
मेनिफ़ेस्ट फ़ाइल में किए गए बदलावों को सेव करें.
OAuth की पुष्टि
कुछ संवेदनशील OAuth स्कोप का इस्तेमाल करने के लिए, आपको अपना ऐड-ऑन पब्लिश करने से पहले, OAuth क्लाइंट की पुष्टि करानी पड़ सकती है. ज़्यादा जानकारी के लिए, ये गाइड देखें:
- Apps Script के लिए OAuth क्लाइंट की पुष्टि करना
- ऐसे ऐप्लिकेशन जिनकी पुष्टि नहीं की गई है
- OAuth की पुष्टि से जुड़े अक्सर पूछे जाने वाले सवाल
- Google API सेवाएं: उपयोगकर्ता के डेटा की नीति
पाबंदी वाले स्कोप
कुछ स्कोप पाबंदी वाले होते हैं. इन पर अतिरिक्त नियम लागू होते हैं, ताकि उपयोगकर्ता के डेटा को सुरक्षित रखा जा सके. अगर आपको ऐसा Gmail या Editor ऐड-ऑन पब्लिश करना है जो एक या उससे ज़्यादा प्रतिबंधित स्कोप का इस्तेमाल करता है, तो ऐड-ऑन को पब्लिश करने से पहले, बताई गई सभी पाबंदियों का पालन करना होगा.
पब्लिश करने से पहले, पाबंदी वाले स्कोप की पूरी सूची देखें. अगर आपका ऐड-ऑन इनमें से किसी भी स्कोप का इस्तेमाल करता है, तो आपको पब्लिश करने से पहले, एपीआई के कुछ स्कोप के लिए अतिरिक्त ज़रूरी शर्तों का पालन करना होगा.
Visual Studio Code के लिए Google Workspace Developer Tools एक्सटेंशन, सभी स्कोप के लिए डाइग्नोस्टिक जानकारी देता है. इसमें स्कोप का ब्यौरा और यह जानकारी शामिल होती है कि यह संवेदनशील है या इस पर पाबंदी लगी है.
एडिटर ऐड-ऑन के स्कोप
Editor ऐड-ऑन बनाते समय, ज़रूरी स्कोप का पता Apps Script सेवा और ऐड-ऑन कोड के इस्तेमाल किए गए तरीकों से चलता है. उदाहरण के लिए, किसी Sheets ऐड-ऑन को अलग-अलग Google Sheets से जानकारी पढ़ने के लिए, https://www.googleapis.com/auth/spreadsheets.readonly
स्कोप की ज़रूरत पड़ सकती है.
Apps Script, आपके स्क्रिप्ट प्रोजेक्ट में कोड जोड़ने के दौरान, इस्तेमाल की जाने वाली सेवाओं के लिए ज़रूरी स्कोप अपने-आप तय करता है. Editor ऐड-ऑन के लिए, स्कोप तय करने और उन्हें साफ़ तौर पर सेट करने के बजाय, अक्सर स्कोप के अपने-आप इकट्ठा होने की सुविधा पर भरोसा किया जा सकता है.
अगर आपने स्कोप साफ़ तौर पर सेट नहीं किए हैं और आपका Editor ऐड-ऑन सिर्फ़ खुली हुई एडिटर फ़ाइल को पढ़ता या उसमें लिखता है, तो अपने स्क्रिप्ट प्रोजेक्ट की किसी एक फ़ाइल में यह टिप्पणी जोड़ें:
/**
* @OnlyCurrentDoc
*/
इस टिप्पणी से Apps Script को यह पता चलता है कि एडिटर फ़ाइल के स्कोप को currentonly
पर सेट करना है. उदाहरण के लिए, अगर आपने इस टिप्पणी को Google Sheets के ऐड-ऑन स्क्रिप्ट प्रोजेक्ट फ़ाइल में जोड़ा है, तो इसका मतलब है कि ऐड-ऑन को सिर्फ़ फ़िलहाल खुली हुई शीट पर काम करने की अनुमति चाहिए. साथ ही, उसे Google Drive में मौजूद किसी अन्य शीट पर काम करने की अनुमति नहीं चाहिए. इसके उलट, अगर आपके Sheets ऐड-ऑन को ऐसी शीट में डेटा पढ़ना या लिखना है जिसे उपयोगकर्ता ने फ़िलहाल नहीं खोला है, तो आपको इस टिप्पणी का इस्तेमाल नहीं करना चाहिए.