Google की सेवाओं के लिए अनुमति देना

Google Apps Script को Google की इन-बिल्ट सेवाओं या Google की ऐडवांस सेवाओं से निजी डेटा ऐक्सेस करने के लिए, उपयोगकर्ता की अनुमति की ज़रूरत होती है.

Google की सेवाओं के लिए पुष्टि करने की प्रोसेस कैसे काम करती है

जब किसी स्क्रिप्ट को Google की सेवाओं का ऐक्सेस चाहिए होता है, तो वह इस सामान्य प्रोसेस का पालन करती है:

  1. पहचान करना: Apps Script, स्क्रिप्ट को स्कैन करके यह पता लगाता है कि वह किन सेवाओं का इस्तेमाल करती है. उदाहरण के लिए, SpreadsheetApp या GmailApp.
  2. स्कोप तय करना: स्कैन के आधार पर, Apps Script उन OAuth स्कोप के सेट की पहचान करता है जिनकी ज़रूरत स्क्रिप्ट को चलाने के लिए होती है.
  3. अनुमति की जांच: स्क्रिप्ट चलाने पर, यह जांच की जाती है कि उपयोगकर्ता ने उन स्कोप के लिए पहले ही अनुमति दी है या नहीं.
  4. उपयोगकर्ता को दिखने वाला प्रॉम्प्ट: अगर अनुमति नहीं दी गई है, तो एक डायलॉग बॉक्स दिखता है. इसमें उपयोगकर्ता से अनुमति देने के लिए कहा जाता है.
  5. स्क्रिप्ट का चलना: स्क्रिप्ट को अनुमति मिलने के बाद, वह उस उपयोगकर्ता के लिए अनुरोध किए गए डेटा को ऐक्सेस कर सकती है.

अनुमतियां और स्क्रिप्ट के टाइप

स्क्रिप्ट किस उपयोगकर्ता के क्रेडेंशियल के साथ चलती है और इस वजह से वह किस डेटा को ऐक्सेस कर सकती है, यह इस बात पर निर्भर करता है कि स्क्रिप्ट किस स्थिति में चल रही है. इस बारे में यहां दी गई टेबल में बताया गया है.

स्क्रिप्ट का टाइप स्क्रिप्ट इस तरह चलती है...
स्टैंडअलोन, Google Workspace ऐड-ऑन या Google Docs, Google Sheets, Google Slides या Google Forms से जुड़ा हुआ कीबोर्ड पर मौजूद उपयोगकर्ता
स्प्रेडशीट में कस्टम फ़ंक्शन पहचान छिपाने वाला उपयोगकर्ता; हालांकि, कोटा की सीमाएं कीबोर्ड का इस्तेमाल करने वाले उपयोगकर्ता के लिए लागू होती हैं
वेब ऐप्लिकेशन या Google Sites गैजेट कीबोर्ड का इस्तेमाल करने वाला व्यक्ति या स्क्रिप्ट का मालिक. यह इस बात पर निर्भर करता है कि ऐप्लिकेशन को डिप्लॉय करते समय कौनसे विकल्प चुने गए हैं
इंस्टॉल किया जा सकने वाला ट्रिगर ट्रिगर बनाने वाला उपयोगकर्ता

ऐक्सेस करने के अधिकार देना

Apps Script, कोड को स्कैन करके अनुमति के स्कोप (जैसे, आपकी Sheets फ़ाइलों या Gmail को ऐक्सेस करने की अनुमति) अपने-आप तय करता है. कमेंट किए गए कोड से भी अनुमति के लिए अनुरोध जनरेट किया जा सकता है. अगर किसी स्क्रिप्ट को अनुमति की ज़रूरत होती है, तो उसे चलाने पर अनुमति वाला डायलॉग दिखता है.

जिन स्क्रिप्ट को आपने पहले अनुमति दी थी वे भी अतिरिक्त अनुमति मांगती हैं. ऐसा तब होता है, जब कोड में बदलाव करने से नई सेवाएं जुड़ जाती हैं. अगर स्क्रिप्ट को वेब ऐप्लिकेशन के तौर पर ऐक्सेस किया जाता है, तो हो सकता है कि स्क्रिप्ट को अनुमति का अनुरोध करने की ज़रूरत न पड़े. ऐसा तब होता है, जब वेब ऐप्लिकेशन स्क्रिप्ट के मालिक की उपयोगकर्ता पहचान के तहत चलता है.

OAuth क्लाइंट की पुष्टि करना लेख पढ़ें.

ऐक्सेस के अधिकार वापस लेना

किसी स्क्रिप्ट को अपने डेटा का ऐक्सेस देने की अनुमति वापस लेने के लिए, यह तरीका अपनाएं:

  1. अपने Google खाते के 'सुरक्षा' सेक्शन पर जाएं.
  2. आपके Google खाते से कनेक्ट किए गए तीसरे पक्ष के ऐप्लिकेशन और सेवाएं में जाकर, कनेक्ट किए गए सभी ऐप्लिकेशन और सेवाएं देखें पर क्लिक करें.
  3. वह स्क्रिप्ट या ऐप्लिकेशन चुनें जिसके लिए आपको ऐक्सेस वापस लेना है.
  4. APP_NAME को दिए गए सभी ऐक्सेस वापस लें पर क्लिक करें. इसके बाद, पुष्टि करें पर क्लिक करें.

स्कोप को मौजूदा दस्तावेज़ तक सीमित करें

अगर आपको ऐड-ऑन या कोई ऐसी स्क्रिप्ट बनानी है जो Spreadsheet service, Document service, Slides service या Forms service का इस्तेमाल करती है, तो आपके पास अनुमति मांगने वाले डायलॉग को सिर्फ़ उन फ़ाइलों का ऐक्सेस मांगने के लिए मजबूर करने का विकल्प होता है जिनमें ऐड-ऑन या स्क्रिप्ट का इस्तेमाल किया जाता है. ऐसा करने से, उपयोगकर्ता की सभी स्प्रेडशीट, दस्तावेज़ों या फ़ॉर्म का ऐक्सेस नहीं मांगा जाता. इसके लिए, फ़ाइल-लेवल की टिप्पणी में यह JSDoc एनोटेशन शामिल करें:

/**
 * @OnlyCurrentDoc
 */

अगर आपकी स्क्रिप्ट में ऐसी लाइब्रेरी शामिल है जो @OnlyCurrentDoc का एलान करती है, लेकिन प्राइमरी स्क्रिप्ट को मौजूदा फ़ाइल के अलावा किसी और फ़ाइल का ऐक्सेस चाहिए, तो @NotOnlyCurrentDoc एनोटेशन उपलब्ध होता है.

ऐड-ऑन के लिए अनुमति देने की लाइफ़साइकल

Sheets, Docs, Slides, और Forms के लिए ऐड-ऑन, आम तौर पर उसी अनुमति मॉडल का पालन करते हैं जो किसी दस्तावेज़ से बाइंड की गई स्क्रिप्ट के लिए होता है. हालाँकि, कुछ मामलों में onOpen(e) और onEdit(e) फ़ंक्शन, बिना अनुमति वाले मोड में काम करते हैं. इससे कुछ और समस्याएं भी हो सकती हैं. ज़्यादा जानकारी के लिए, ऐड-ऑन के लिए अनुमति देने के लाइफ़साइकल से जुड़ी गाइड देखें.

OAuth ऐप्लिकेशन के उपयोगकर्ताओं की सीमाएं

Google उपयोगकर्ता के डेटा को ऐक्सेस करने के लिए OAuth का इस्तेमाल करने वाले ऐप्लिकेशन पर, अनुमति देने की सीमाएं लागू होती हैं. इनमें Apps Script प्रोजेक्ट भी शामिल हैं. ज़्यादा जानकारी के लिए, OAuth ऐप्लिकेशन के उपयोगकर्ताओं की सीमाएं देखें.

Apps Script के साथ फिर से पुष्टि करने का तरीका

Apps Script, Google Cloud सेवा की सेटिंग में कॉन्फ़िगर की गई फिर से पुष्टि करने की फ़्रीक्वेंसी को लागू नहीं करती है. ऐसा इसलिए होता है, क्योंकि Apps Script में ट्रिगर का इस्तेमाल करके स्क्रिप्ट को अपने-आप चलाया जा सकता है. ये ट्रिगर, उपयोगकर्ता के सीधे इंटरैक्शन के बिना काम करते हैं. ऑटोमेटेड तरीके से किए गए इन कामों के लिए, फिर से पुष्टि करने के लिए कहा नहीं जाता. Apps Script ऐप्लिकेशन, तय की गई समयावधि (उदाहरण के लिए, 12 घंटे) के बाद, आपसे पुष्टि करने के लिए अपने-आप नहीं कहता.

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

Apps Script, फ़ंक्शन कॉल के लिए कोड को स्कैन करके, ज़रूरी स्कोप का अपने-आप पता लगाती है. अगर आपको ज़्यादा कंट्रोल चाहिए, तो प्रोजेक्ट मेनिफ़ेस्ट (appsscript.json) में स्कोप सेट किए जा सकते हैं. पब्लिश की गई स्क्रिप्ट के लिए, यह तरीका अपनाने का सुझाव दिया जाता है. इससे यह पक्का किया जा सकता है कि आपने ज़रूरी अनुमतियों का ही इस्तेमाल किया हो.

निर्देशों के लिए, स्कोप सेट करना लेख पढ़ें.

समस्या का हल

  • ट्रिगर चलाने पर"अनुमति ज़रूरी है" गड़बड़ी का मैसेज दिखना: ट्रिगर को उस उपयोगकर्ता से अनुमति मिलनी चाहिए जिसने उन्हें बनाया है. अगर आपने ऐसा कोड जोड़ा है जिसके लिए नई अनुमतियों की ज़रूरत है, तो आपको स्क्रिप्ट एडिटर में जाकर, किसी फ़ंक्शन को मैन्युअल तरीके से एक बार चलाना होगा. इससे अनुमति देने के लिए डायलॉग बॉक्स ट्रिगर होगा.
  • स्कोप अपडेट नहीं हो रहे हैं: अगर आपने अपना कोड अपडेट कर दिया है, लेकिन अनुमति वाले डायलॉग बॉक्स में बदलाव नहीं दिख रहे हैं, तो प्रोजेक्ट को सेव करें और एडिटर को रीफ़्रेश करें. अगर मेनिफ़ेस्ट में साफ़ तौर पर स्कोप का इस्तेमाल किया जा रहा है, तो पक्का करें कि आपने oauthScopes ऐरे में नया स्कोप जोड़ा हो.
  • "यह ऐप्लिकेशन ब्लॉक कर दिया गया है" या पुष्टि नहीं किए गए ऐप्लिकेशन के लिए चेतावनी: ऐसा तब होता है, जब आपकी स्क्रिप्ट में संवेदनशील या प्रतिबंधित स्कोप का इस्तेमाल किया जाता है और Google ने उसकी पुष्टि नहीं की है. OAuth क्लाइंट की पुष्टि करना लेख पढ़ें.