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

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

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

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

स्कोप देखना

अपने स्क्रिप्ट प्रोजेक्ट के लिए ज़रूरी स्कोप देखने के लिए, ये काम करें:

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

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

साफ़ तौर पर दायरे सेट करना

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

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

स्क्रिप्ट प्रोजेक्ट के manifest फ़ाइल में बदलाव करके, उन स्कोप को साफ़ तौर पर सेट किया जा सकता है जिनका इस्तेमाल प्रोजेक्ट करता है. मेनिफ़ेस्ट फ़ील्ड 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 का कोई ऐसा ऐड-ऑन पब्लिश करना है जिसमें एक या उससे ज़्यादा पाबंदी वाले स्कोप का इस्तेमाल किया गया है, तो पब्लिश करने से पहले ऐड-ऑन को सभी पाबंदियों का पालन करना होगा.

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

Editor ऐड-ऑन के स्कोप

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 ऐड-ऑन को किसी ऐसी शीट में डेटा पढ़ना या उसमें डेटा डालना है जिसे उपयोगकर्ता ने फ़िलहाल नहीं खोला है, तो आपको इस टिप्पणी का इस्तेमाल नहीं करना चाहिए.