Method: scripts.run

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

Apps Script प्रोजेक्ट में कोई फ़ंक्शन चलाता है. स्क्रिप्ट प्रोजेक्ट को Apps स्क्रिप्ट 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

string

लागू की जाने वाली स्क्रिप्ट का स्क्रिप्ट आईडी. स्क्रिप्ट प्रोजेक्ट ढूंढने के लिए, प्रोजेक्ट सेटिंग पेज पर जाकर "IDs." में जाएं

अनुरोध का मुख्य भाग

अनुरोध के मुख्य हिस्से में ये स्ट्रक्चर शामिल हैं:

जेएसओएन के काेड में दिखाना
{
  "function": string,
  "parameters": [
    value
  ],
  "sessionState": string,
  "devMode": boolean
}
फ़ील्ड
function

string

दी गई स्क्रिप्ट में एक्ज़ीक्यूट करने के लिए फ़ंक्शन का नाम. नाम में ब्रैकेट या पैरामीटर शामिल नहीं हैं. यह Library.libFunction1 जैसी किसी शामिल की गई लाइब्रेरी के फ़ंक्शन के बारे में बता सकता है.

parameters[]

value (Value format)

लागू किए जाने वाले फ़ंक्शन में पास किए जाने वाले पैरामीटर. हर पैरामीटर के लिए ऑब्जेक्ट टाइप, Apps Script में अनुमानित टाइप से मेल खाना चाहिए. पैरामीटर ऐप्लिकेशन स्क्रिप्ट के खास ऑब्जेक्ट प्रकार (जैसे Document या Calendar) नहीं हो सकते; ये सिर्फ़ string, number, array, object या boolean जैसे बुनियादी प्रकार के हो सकते हैं. ज़रूरी नहीं.

sessionState

string

इसका इस्तेमाल अब नहीं किया जाता. सिर्फ़ Android ऐड-ऑन के साथ इस्तेमाल करने के लिए. एक आईडी जो Google Docs या Sheets के लिए Android ऐप्लिकेशन में उपयोगकर्ता के मौजूदा सेशन को दिखाता है. इसमें ऐड-ऑन लॉन्च करने वाले इंटेंट में अतिरिक्त डेटा शामिल होता है. जब कोई Android ऐड-ऑन किसी सेशन वाली स्थिति में चलाया जाता है, तो यह एक बाउंड स्क्रिप्ट के विशेषाधिकार लेता है—इसका मतलब है कि यह उपयोगकर्ता के कर्सर की मौजूदा स्थिति (Docs में) या चुनी गई सेल (Sheets में) जैसी जानकारी को ऐक्सेस कर सकता है. स्टेटस जानने के लिए, Intent.getStringExtra("com.google.android.apps.docs.addons.SessionState") पर कॉल करें. ज़रूरी नहीं.

devMode

boolean

अगर true और उपयोगकर्ता, स्क्रिप्ट का मालिक है, तो स्क्रिप्ट, Apps Script API के साथ इस्तेमाल किए जाने वाले वर्शन के बजाय, हाल ही में सेव किए गए वर्शन पर चलती है. ज़रूरी नहीं; डिफ़ॉल्ट वैल्यू false है.

जवाब का मुख्य भाग

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

ऐप्लिकेशन स्क्रिप्ट के फ़ंक्शन के काम करने का तरीका run से शुरू हुआ. जब तक फ़ंक्शन एक्ज़ीक्यूट नहीं कर देता, तब तक एक्ज़ीक्यूशन का रिस्पॉन्स नहीं मिलता. ज़्यादा से ज़्यादा एक्ज़ीक्यूशन रनटाइम Apps स्क्रिप्ट कोटा गाइड में दिया गया है.

प्रोसेस शुरू होने के बाद, इसके चार नतीजे हो सकते हैं:

  • अगर स्क्रिप्ट फ़ंक्शन सफलतापूर्वक रिटर्न होता है, तो response फ़ील्ड में फ़ंक्शन के साथ एक ExecutionResponse ऑब्जेक्ट होता है और #39; ऑब्जेक्ट result फ़ील्ड में रिटर्न मान होता है.
  • अगर स्क्रिप्ट फ़ंक्शन (या खुद ऐप्लिकेशन स्क्रिप्ट) कोई अपवाद देता है, तो error फ़ील्ड में एक Status ऑब्जेक्ट होता है. Status ऑब्जेक्ट के details फ़ील्ड में एक ExecutionError ऑब्जेक्ट वाली कैटगरी है, जो गड़बड़ी के बारे में जानकारी देता है.
  • अगर एक्ज़ीक्यूशन अभी तक पूरा नहीं हुआ है, तो done फ़ील्ड false होता है. साथ ही, response और error फ़ील्ड मौजूद नहीं होते.
  • अगर run कॉल अपने-आप पूरा नहीं हो पाता (उदाहरण के लिए, किसी गलत अनुरोध या अनुमति देने में हुई गड़बड़ी की वजह से), तो तरीका 4XX रेंज में एचटीटीपी रिस्पॉन्स कोड दिखाता है. यह रिस्पॉन्स बॉडी के किसी दूसरे फ़ॉर्मैट में होता है. क्लाइंट लाइब्रेरी अपने-आप 4XX रिस्पॉन्स को एक अपवाद क्लास में बदल देती हैं.

जेएसओएन के काेड में दिखाना
{
  "done": boolean,

  // Union field result can be only one of the following:
  "error": {
    object (Status)
  },
  "response": {
    "@type": string,
    field1: ...,
    ...
  }
  // End of list of possible types for union field result.
}
फ़ील्ड
done

boolean

यह फ़ील्ड बताता है कि स्क्रिप्ट लागू हुई या नहीं. पूरे हो चुके एक्ज़ीक्यूशन में एक पॉप्युलेट हुआ response फ़ील्ड होता है, जिसमें एक्ज़ीक्यूट किए जाने वाले फ़ंक्शन से ExecutionResponse होता है.

यूनियन फ़ील्ड result. ऑपरेशन का नतीजा, error या कोई मान्य response हो सकता है. अगर done == false है, तो error या response को सेट नहीं किया जाता. अगर done == true है, तो error या response में से कोई एक सेट किया जा सकता है. हो सकता है कि कुछ सेवाओं के नतीजे न मिलें. result इनमें से सिर्फ़ एक हो सकता है:
error

object (Status)

अगर run कॉल पूरा होता है, लेकिन स्क्रिप्ट फ़ंक्शन (या Apps Script) अपवाद डालता है, तो इस फ़ील्ड में Status ऑब्जेक्ट मौजूद होता है. Status ऑब्जेक्ट के details फ़ील्ड में एक ExecutionError ऑब्जेक्ट वाली कैटगरी है, जो गड़बड़ी के बारे में जानकारी देता है.

response

object

अगर स्क्रिप्ट फ़ंक्शन वापस लौटता है, तो इस फ़ील्ड में फ़ंक्शन के साथ एक ExecutionResponse ऑब्जेक्ट होता है.

ऐसा ऑब्जेक्ट जिसमें आर्बिट्ररी टाइप के फ़ील्ड होते हैं. एक और फ़ील्ड "@type" में एक यूआरआई होता है, जो टाइप की पहचान करता है. उदाहरण: { "id": 1234, "@type": "types.example.com/standard/id" }.

अनुमति पाने के लिंक

इनमें से किसी एक 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) अपवाद डालता है, तो रिस्पॉन्स बॉडी (#)9 के error फ़ील्ड में यह Status ऑब्जेक्ट होता है.

जेएसओएन के काेड में दिखाना
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
फ़ील्ड
code

integer

स्टेटस कोड. इस एपीआई के लिए, यह वैल्यू इनमें से कोई एक है:

  • 10, SCRIPT_TIMEOUT गड़बड़ी दिखाता है,
  • 3, INVALID_ARGUMENT गड़बड़ी होने का संकेत देना या
  • 1, CANCELLED का एक्ज़ीक्यूशन दिखाता है.

message

string

डेवलपर को दिखने वाला गड़बड़ी का मैसेज, जो अंग्रेज़ी में है. अगर उपयोगकर्ता को कोई गड़बड़ी का मैसेज दिखता है, तो उसे स्थानीय भाषा में लिखा जाता है और details फ़ील्ड में भेजा जाता है. क्लाइंट ने यह मैसेज स्थानीय भाषा में भेजा है.

details[]

object

श्रेणी जिसमें एक ExecutionError ऑब्जेक्ट होता है और जो गड़बड़ी के टाइप की जानकारी देता है.

ऐसा ऑब्जेक्ट जिसमें आर्बिट्ररी टाइप के फ़ील्ड होते हैं. एक और फ़ील्ड "@type" में एक यूआरआई होता है, जो टाइप की पहचान करता है. उदाहरण: { "id": 1234, "@type": "types.example.com/standard/id" }.