Apps Script प्रोजेक्ट में फ़ंक्शन चलाता है. स्क्रिप्ट प्रोजेक्ट को Apps Script API के साथ इस्तेमाल करने के लिए डिप्लॉय करना ज़रूरी है. साथ ही, कॉल करने वाले ऐप्लिकेशन के लिए, एक ही Cloud Platform प्रोजेक्ट शेयर करना ज़रूरी है.
इस तरीके के लिए, OAuth 2.0 टोकन के साथ अनुमति की ज़रूरत होती है. इस टोकन में ऑथराइज़ेशन सेक्शन में दिया गया कम से कम एक स्कोप शामिल होता है. जिन स्क्रिप्ट प्रोजेक्ट के लिए अनुमति की ज़रूरत नहीं होती उन्हें इस एपीआई से एक्ज़ीक्यूट नहीं किया जा सकता. पुष्टि करने वाले टोकन में शामिल करने के लिए सही स्कोप ढूंढने के लिए, स्क्रिप्ट प्रोजेक्ट का खास जानकारी पेज खोलें और नीचे की ओर स्क्रोल करके "प्रोजेक्ट OAuth स्कोप" पर जाएं.
गड़बड़ी 403, PERMISSION_DENIED: The caller does not have permission
से पता चलता है कि अनुरोध की पुष्टि करने के लिए इस्तेमाल किया गया Cloud Platform प्रोजेक्ट, स्क्रिप्ट में इस्तेमाल किए गए प्रोजेक्ट से अलग है.
एचटीटीपी अनुरोध
POST https://script.googleapis.com/v1/scripts/{scriptId}:run
यूआरएल, gRPC ट्रांसकोडिंग सिंटैक्स का इस्तेमाल करता है.
पाथ के पैरामीटर
पैरामीटर | |
---|---|
scriptId |
चलाई जाने वाली स्क्रिप्ट का स्क्रिप्ट आईडी. "आईडी" में जाकर, प्रोजेक्ट सेटिंग पेज पर स्क्रिप्ट आईडी ढूंढें. |
अनुरोध का मुख्य भाग
अनुरोध के मुख्य हिस्से में इस तरह का डेटा शामिल होता है:
जेएसओएन के काेड में दिखाना |
---|
{ "function": string, "parameters": [ value ], "sessionState": string, "devMode": boolean } |
फ़ील्ड | |
---|---|
function |
दी गई स्क्रिप्ट में एक्ज़ीक्यूट करने के लिए फ़ंक्शन का नाम. नाम में ब्रैकेट या पैरामीटर शामिल नहीं होते. यह शामिल की गई लाइब्रेरी, जैसे कि |
parameters[] |
एक्ज़ीक्यूट हो रहे फ़ंक्शन को पास किए जाने वाले पैरामीटर. हर पैरामीटर का ऑब्जेक्ट टाइप, Apps Script में मौजूद ऑब्जेक्ट के टाइप से मेल खाना चाहिए. पैरामीटर, Apps Script से जुड़े खास ऑब्जेक्ट टाइप (जैसे कि |
sessionState |
अब काम नहीं करता. सिर्फ़ Android ऐड-ऑन के साथ इस्तेमाल करने के लिए. वह आईडी जो Google Docs या Sheets के लिए, Android ऐप्लिकेशन में उपयोगकर्ता के मौजूदा सेशन को दिखाता है. इसे ऐड-ऑन लॉन्च करने वाले इंटेंट में, अतिरिक्त डेटा के तौर पर शामिल किया जाता है. जब किसी Android ऐड-ऑन को सेशन की स्थिति के साथ चलाया जाता है, तो उसे बाउंड स्क्रिप्ट के खास अधिकार मिल जाते हैं. इसका मतलब है कि वह उपयोगकर्ता के कर्सर की मौजूदा जगह (Docs में) या चुने गए सेल (Sheets में) जैसी जानकारी ऐक्सेस कर सकता है. स्टेटस वापस पाने के लिए, |
devMode |
अगर |
जवाब का मुख्य भाग
अगर एपीआई सही से जुड़ जाता है, ताे जवाब के मुख्य भाग में नीचे दिए गए स्ट्रक्चर शामिल होता है.
Apps Script फ़ंक्शन को लागू करने की प्रोसेस, run
से शुरू हुई. जब तक फ़ंक्शन एक्ज़ीक्यूशन पूरा नहीं कर लेता, तब तक एक्ज़ीक्यूशन का रिस्पॉन्स नहीं मिलता. ज़्यादा से ज़्यादा रनिंग रनटाइम की जानकारी Apps Script कोटा गाइड में दी गई है.
निष्पादन शुरू होने के बाद, चार में से कोई एक नतीजा मिल सकता है:
- अगर स्क्रिप्ट फ़ंक्शन सही तरीके से काम करता है, तो
response
फ़ील्ड मेंExecutionResponse
ऑब्जेक्ट होता है, जिसमें ऑब्जेक्ट केresult
फ़ील्ड में फ़ंक्शन की रिटर्न वैल्यू होती है. - अगर स्क्रिप्ट फ़ंक्शन (या खुद Apps Script) कोई अपवाद दिखाता है, तो
error
फ़ील्ड मेंStatus
ऑब्जेक्ट होता है.Status
ऑब्जेक्ट केdetails
फ़ील्ड में एकExecutionError
ऑब्जेक्ट वाला कलेक्शन होता है, जो गड़बड़ी के टाइप के बारे में जानकारी देता है. - अगर प्रोसेस अब तक पूरी नहीं हुई है, तो
done
फ़ील्डfalse
होगा. साथ ही,response
याerror
फ़ील्ड में से कोई भी फ़ील्ड मौजूद नहीं है. - अगर
run
कॉल अपने-आप नहीं चलता (उदाहरण के लिए, गलत तरीके से किए गए अनुरोध या अनुमति देने में हुई गड़बड़ी की वजह से), तो यह तरीका 4XX रेंज में रिस्पॉन्स के मुख्य हिस्से के लिए किसी दूसरे फ़ॉर्मैट वाला एचटीटीपी रिस्पॉन्स कोड दिखाता है. क्लाइंट लाइब्रेरी, 4XX रिस्पॉन्स को अपने-आप अपवाद क्लास में बदल देती हैं.
जेएसओएन के काेड में दिखाना |
---|
{ "done": boolean, // Union field |
फ़ील्ड | |
---|---|
done |
यह फ़ील्ड बताता है कि स्क्रिप्ट का निष्पादन पूरा हुआ है या नहीं. पूरे हो चुके एक्ज़ीक्यूशन में, ऐसे |
यूनियन फ़ील्ड result . कार्रवाई का नतीजा, जो error या मान्य response हो सकता है. अगर done == false है, तो error या response दोनों ही सेट नहीं हैं. अगर done == true है, तो error या response में से कोई एक सेट किया जा सकता है. ऐसा हो सकता है कि कुछ सेवाओं से नतीजे न मिलें. result इनमें से सिर्फ़ एक हो सकता है: |
|
error |
अगर |
response |
अगर स्क्रिप्ट फ़ंक्शन सही से दिखता है, तो इस फ़ील्ड में फ़ंक्शन की रिटर्न वैल्यू के साथ एक ऑब्जेक्ट, जिसमें आर्बिट्रेरी टाइप के फ़ील्ड शामिल हैं. एक और फ़ील्ड |
अनुमति पाने के लिंक
इनमें से कोई एक OAuth स्कोप ज़रूरी है:
https://apps-apis.google.com/a/feeds
https://apps-apis.google.com/a/feeds/alias/
https://apps-apis.google.com/a/feeds/groups/
https://mail.google.com/
https://sites.google.com/feeds
https://www.google.com/calendar/feeds
https://www.google.com/m8/feeds
https://www.googleapis.com/auth/admin.directory.group
https://www.googleapis.com/auth/admin.directory.user
https://www.googleapis.com/auth/documents
https://www.googleapis.com/auth/documents.currentonly
https://www.googleapis.com/auth/drive
https://www.googleapis.com/auth/dynamiccreatives
https://www.googleapis.com/auth/forms
https://www.googleapis.com/auth/forms.currentonly
https://www.googleapis.com/auth/groups
https://www.googleapis.com/auth/script.cpanel
https://www.googleapis.com/auth/script.external_request
https://www.googleapis.com/auth/script.scriptapp
https://www.googleapis.com/auth/script.send_mail
https://www.googleapis.com/auth/script.storage
https://www.googleapis.com/auth/script.webapp.deploy
https://www.googleapis.com/auth/spreadsheets
https://www.googleapis.com/auth/spreadsheets.currentonly
https://www.googleapis.com/auth/sqlservice
https://www.googleapis.com/auth/userinfo.email
ज़्यादा जानकारी के लिए, OAuth 2.0 की खास जानकारी देखें.
स्थिति
अगर run
कॉल हो जाता है, लेकिन स्क्रिप्ट फ़ंक्शन (या खुद Apps Script) से कोई अपवाद मिलता है, तो रिस्पॉन्स के मुख्य हिस्से के error
फ़ील्ड में, यह Status
ऑब्जेक्ट मौजूद होगा.
जेएसओएन के काेड में दिखाना |
---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |
फ़ील्ड | |
---|---|
code |
स्टेटस कोड. इस एपीआई के लिए, यह वैल्यू या तो:
|
message |
डेवलपर को गड़बड़ी का मैसेज, जो अंग्रेज़ी में है. उपयोगकर्ता को दिखने वाली गड़बड़ी के मैसेज को स्थानीय भाषा में बदला जाता है और |
details[] |
एक कलेक्शन, जिसमें एक एक ऑब्जेक्ट, जिसमें आर्बिट्रेरी टाइप के फ़ील्ड शामिल हैं. एक और फ़ील्ड |