किसी 'Apps स्क्रिप्ट' प्रोजेक्ट में फ़ंक्शन चलाता है. स्क्रिप्ट प्रोजेक्ट को 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 |
एक्ज़ीक्यूट की जाने वाली स्क्रिप्ट का स्क्रिप्ट आईडी. "आईडी" में, प्रोजेक्ट सेटिंग पेज पर स्क्रिप्ट आईडी ढूंढें. |
अनुरोध का मुख्य भाग
अनुरोध के मुख्य हिस्से में, यहां दिए गए स्ट्रक्चर का डेटा शामिल होता है:
| JSON के काेड में दिखाना |
|---|
{ "function": string, "parameters": [ value ], "sessionState": string, "devMode": boolean } |
| फ़ील्ड | |
|---|---|
function |
दी गई स्क्रिप्ट में एक्ज़ीक्यूट किए जाने वाले फ़ंक्शन का नाम. नाम में ब्रैकेट या पैरामीटर शामिल नहीं हैं. यह |
parameters[] |
एक्ज़ीक्यूट किए जा रहे फ़ंक्शन को पास किए जाने वाले पैरामीटर. हर पैरामीटर के लिए ऑब्जेक्ट टाइप, Apps Script में उम्मीद के मुताबिक टाइप से मेल खाना चाहिए. पैरामीटर, Apps Script के लिए खास ऑब्जेक्ट टाइप नहीं हो सकते (जैसे कि |
sessionState |
अब काम नहीं करता. यह सुविधा सिर्फ़ Android ऐड-ऑन के साथ इस्तेमाल की जा सकती है. यह एक ऐसा आईडी है जो Google Docs या Sheets के लिए, Android ऐप्लिकेशन में उपयोगकर्ता के मौजूदा सेशन को दिखाता है. यह आईडी, ऐड-ऑन को लॉन्च करने वाले इंटेंट में अतिरिक्त डेटा के तौर पर शामिल होता है. जब किसी Android ऐड-ऑन को सेशन की स्थिति के साथ चलाया जाता है, तो वह बाउंड स्क्रिप्ट के खास अधिकार हासिल कर लेता है. इसका मतलब है कि वह उपयोगकर्ता के कर्सर की मौजूदा जगह (Docs में) या चुनी गई सेल (Sheets में) जैसी जानकारी को ऐक्सेस कर सकता है. राज्य की जानकारी पाने के लिए, |
devMode |
अगर |
जवाब का मुख्य भाग
अगर एपीआई सही से जुड़ जाता है, ताे जवाब के मुख्य भाग में नीचे दिए गए स्ट्रक्चर शामिल होता है.
run से शुरू हुए Apps Script फ़ंक्शन को एक्ज़ीक्यूट करने की जानकारी. जब तक फ़ंक्शन एक्ज़ीक्यूट नहीं हो जाता, तब तक एक्ज़ीक्यूशन रिस्पॉन्स नहीं आता. एक्ज़ीक्यूशन का ज़्यादा से ज़्यादा रनटाइम, Apps स्क्रिप्ट कोटा से जुड़ी गाइड में दिया गया है.
एक्ज़ीक्यूशन शुरू होने के बाद, इसके चार में से एक नतीजे हो सकते हैं:
- अगर स्क्रिप्ट फ़ंक्शन सही तरीके से रिटर्न करता है, तो
responseफ़ील्ड में एकExecutionResponseऑब्जेक्ट होगा, जिसमें ऑब्जेक्ट केresultफ़ील्ड में फ़ंक्शन की रिटर्न वैल्यू होगी. - अगर स्क्रिप्ट फ़ंक्शन या Apps Script में कोई अपवाद दिखता है, तो
errorफ़ील्ड में एकStatusऑब्जेक्ट होता है.Statusऑब्जेक्ट केdetailsफ़ील्ड में, एकExecutionErrorऑब्जेक्ट वाला अरे होता है. इससे गड़बड़ी के बारे में जानकारी मिलती है. - अगर एक्ज़ीक्यूशन अभी तक पूरा नहीं हुआ है, तो
doneफ़ील्डfalseहै. साथ ही,responseयाerrorफ़ील्ड में से कोई भी फ़ील्ड मौजूद नहीं है. - अगर
runकॉल अपने-आप पूरा नहीं होता (उदाहरण के लिए, किसी गलत अनुरोध या अनुमति में हुई गड़बड़ी की वजह से), तो यह तरीका रिस्पॉन्स के मुख्य भाग के लिए किसी दूसरे फ़ॉर्मैट के साथ 4XX रेंज में एचटीटीपी रिस्पॉन्स कोड दिखाता है. क्लाइंट लाइब्रेरी, 4XX रिस्पॉन्स को अपवाद क्लास में अपने-आप बदल देती हैं.
| JSON के काेड में दिखाना |
|---|
{ "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/feedshttps://apps-apis.google.com/a/feeds/alias/https://apps-apis.google.com/a/feeds/groups/https://mail.google.com/https://sites.google.com/feedshttps://www.google.com/calendar/feedshttps://www.google.com/m8/feedshttps://www.googleapis.com/auth/admin.directory.grouphttps://www.googleapis.com/auth/admin.directory.userhttps://www.googleapis.com/auth/documentshttps://www.googleapis.com/auth/documents.currentonlyhttps://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/dynamiccreativeshttps://www.googleapis.com/auth/formshttps://www.googleapis.com/auth/forms.currentonlyhttps://www.googleapis.com/auth/groupshttps://www.googleapis.com/auth/script.cpanelhttps://www.googleapis.com/auth/script.external_requesthttps://www.googleapis.com/auth/script.scriptapphttps://www.googleapis.com/auth/script.send_mailhttps://www.googleapis.com/auth/script.storagehttps://www.googleapis.com/auth/script.webapp.deployhttps://www.googleapis.com/auth/spreadsheetshttps://www.googleapis.com/auth/spreadsheets.currentonlyhttps://www.googleapis.com/auth/sqlservicehttps://www.googleapis.com/auth/userinfo.email
ज़्यादा जानकारी के लिए, OAuth 2.0 की खास जानकारी देखें.
स्थिति
अगर run कॉल सफल होता है, लेकिन स्क्रिप्ट फ़ंक्शन (या खुद Apps Script) कोई अपवाद दिखाता है, तो जवाब के मुख्य हिस्से के error फ़ील्ड में यह Status ऑब्जेक्ट होता है.
| JSON के काेड में दिखाना |
|---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |
| फ़ील्ड | |
|---|---|
code |
स्टेटस कोड. इस एपीआई के लिए, यह वैल्यू:
|
message |
डेवलपर को दिखने वाला गड़बड़ी का मैसेज, जो अंग्रेज़ी में है. उपयोगकर्ता को दिखने वाली गड़बड़ी के मैसेज को स्थानीय भाषा में लिखा जाता है और |
details[] |
ऐसा कलेक्शन जिसमें एक ऐसा ऑब्जेक्ट जिसमें आर्बिट्रेरी टाइप के फ़ील्ड शामिल होते हैं. अतिरिक्त फ़ील्ड |