वेब ऐप्लिकेशन

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

स्टैंडअलोन स्क्रिप्ट और Google Workspace ऐप्लिकेशन से जुड़ी स्क्रिप्ट, दोनों को वेब ऐप्लिकेशन में बदला जा सकता है. हालांकि, इसके लिए ज़रूरी है कि वे यहां दी गई शर्तों को पूरा करती हों.

वेब ऐप्लिकेशन के लिए ज़रूरी शर्तें

किसी स्क्रिप्ट को वेब ऐप्लिकेशन के तौर पर पब्लिश किया जा सकता है. इसके लिए, यह ज़रूरी है कि वह इन शर्तों को पूरा करती हो:

अनुरोध के पैरामीटर

जब कोई उपयोगकर्ता किसी ऐप्लिकेशन पर जाता है या कोई प्रोग्राम, ऐप्लिकेशन को एचटीटीपी GET अनुरोध भेजता है, तो Apps Script, फ़ंक्शन doGet(e) को चलाता है. जब कोई प्रोग्राम, ऐप्लिकेशन को एचटीटीपी POST अनुरोध भेजता है, तो Apps Script, doPost(e) को चलाता है. दोनों ही मामलों में, e आर्ग्युमेंट, इवेंट पैरामीटर को दिखाता है. इसमें किसी भी अनुरोध पैरामीटर के बारे में जानकारी हो सकती है. इवेंट ऑब्जेक्ट का स्ट्रक्चर, यहां दी गई टेबल में दिखाया गया है:

फ़ील्ड
e.queryString

यूआरएल के क्वेरी स्ट्रिंग वाले हिस्से की वैल्यू या null, अगर कोई क्वेरी स्ट्रिंग नहीं दी गई है

name=alice&n=1&n=2
e.parameter

की/वैल्यू पेयर का एक ऑब्जेक्ट, जो अनुरोध के पैरामीटर से मेल खाता है. जिन पैरामीटर की एक से ज़्यादा वैल्यू होती हैं उनके लिए, सिर्फ़ पहली वैल्यू दिखाई जाती है.

{"name": "alice", "n": "1"}
e.parameters

e.parameter जैसा ऑब्जेक्ट, लेकिन हर कुंजी के लिए वैल्यू की एक कैटगरी के साथ

{"name": ["alice"], "n": ["1", "2"]}
e.pathInfo

/exec या /dev के बाद का यूआरएल पाथ. उदाहरण के लिए, अगर यूआरएल पाथ /exec/hello पर खत्म होता है, तो पाथ की जानकारी hello होती है.

e.contextPath इसका इस्तेमाल नहीं किया जाता. यह हमेशा खाली स्ट्रिंग होती है.
e.contentLength

POST अनुरोधों के लिए अनुरोध के मुख्य हिस्से की लंबाई या GET अनुरोधों के लिए -1

332
e.postData.length

e.contentLength के बराबर

332
e.postData.type

POST के मुख्य हिस्से का MIME टाइप

text/csv
e.postData.contents

POST के मुख्य हिस्से का कॉन्टेंट टेक्स्ट

Alice,21
e.postData.name

इसकी वैल्यू हमेशा "postData" होती है

postData

उदाहरण के लिए, यहां दिए गए तरीके से यूआरएल में username और age जैसे पैरामीटर पास किए जा सकते हैं:

https://script.google.com/.../exec?username=jsmith&age=21

इसके बाद, पैरामीटर इस तरह दिखाए जा सकते हैं:

function doGet(e) {
  var params = JSON.stringify(e);
  return ContentService.createTextOutput(params).setMimeType(ContentService.MimeType.JSON);
}

ऊपर दिए गए उदाहरण में, doGet(e) से यह आउटपुट मिलता है:

{
  "queryString": "username=jsmith&age=21",
  "parameter": {
    "username": "jsmith",
    "age": "21"
  },
  "contextPath": "",
  "parameters": {
    "username": [
      "jsmith"
    ],
    "age": [
      "21"
    ]
  },
  "contentLength": -1
}

किसी स्क्रिप्ट को वेब ऐप्लिकेशन के तौर पर डिप्लॉय करना

किसी स्क्रिप्ट को वेब ऐप्लिकेशन के तौर पर डिप्लॉय करने के लिए, यह तरीका अपनाएं:

  1. स्क्रिप्ट प्रोजेक्ट में सबसे ऊपर दाईं ओर, डिप्लॉय करें > नया डिप्लॉयमेंट पर क्लिक करें.
  2. "टाइप चुनें" के बगल में, डिप्लॉयमेंट टाइप चालू करें > वेब ऐप्लिकेशन पर क्लिक करें.
  3. "डिप्लॉयमेंट कॉन्फ़िगरेशन" में दिए गए फ़ील्ड में, अपने वेब ऐप्लिकेशन के बारे में जानकारी डालें.
  4. डिप्लॉय करें पर क्लिक करें.

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

वेब ऐप्लिकेशन डिप्लॉयमेंट की जांच करना

अपनी स्क्रिप्ट को वेब ऐप्लिकेशन के तौर पर आज़माने के लिए, यह तरीका अपनाएं:

  1. स्क्रिप्ट प्रोजेक्ट में सबसे ऊपर दाईं ओर, डिप्लॉय करें > डिप्लॉयमेंट की जांच करें पर क्लिक करें.
  2. "टाइप चुनें" के बगल में मौजूद, डिप्लॉयमेंट के टाइप चालू करें > वेब ऐप्लिकेशन पर क्लिक करें.
  3. वेब ऐप्लिकेशन के यूआरएल में जाकर, कॉपी करें पर क्लिक करें.
  4. यूआरएल को अपने ब्राउज़र में चिपकाएं और वेब ऐप्लिकेशन की जांच करें.

    यह यूआरएल /dev पर खत्म होता है. इसे सिर्फ़ वे उपयोगकर्ता ऐक्सेस कर सकते हैं जिनके पास स्क्रिप्ट में बदलाव करने का ऐक्सेस है. ऐप्लिकेशन का यह इंस्टेंस, हमेशा सबसे हाल में सेव किए गए कोड को चलाता है. इसका इस्तेमाल सिर्फ़ डेवलपमेंट के दौरान टेस्टिंग के लिए किया जाता है.

अनुमतियां

वेब ऐप्लिकेशन के लिए अनुमतियां अलग-अलग होती हैं. यह इस बात पर निर्भर करता है कि आपने ऐप्लिकेशन को कैसे लागू किया है:

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

Google Sites में अपना वेब ऐप्लिकेशन एम्बेड करना

Google Sites में किसी वेब ऐप्लिकेशन को एम्बेड करने के लिए, पहले उसे डप्लॉय करना होगा. आपको Deploy डायलॉग से डिप्लॉय किया गया यूआरएल भी चाहिए होगा.

किसी वेब ऐप्लिकेशन को Sites पेज में एम्बेड करने के लिए, यह तरीका अपनाएं:

  1. वह Sites पेज खोलें जहां आपको वेब ऐप्लिकेशन जोड़ना है.
  2. शामिल करें > यूआरएल जोड़ें को चुनें.
  3. वेब ऐप्लिकेशन का यूआरएल चिपकाएं. इसके बाद, जोड़ें पर क्लिक करें.

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

वेब ऐप्लिकेशन और ब्राउज़र का इतिहास

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

Apps Script, क्लाइंट-साइड पर काम करने वाले दो एसिंक्रोनस JavaScript API उपलब्ध कराता है. इनकी मदद से, ब्राउज़र के इतिहास से लिंक किए गए वेब ऐप्लिकेशन बनाए जा सकते हैं:

  • google.script.history ऐसे तरीके उपलब्ध कराता है जिनकी मदद से, ब्राउज़र के इतिहास में हुए बदलावों के हिसाब से डाइनैमिक रिस्पॉन्स दिया जा सकता है. इसमें ये शामिल हैं: ब्राउज़र के इतिहास में स्टेट (ऐसे सामान्य ऑब्जेक्ट जिन्हें तय किया जा सकता है) जोड़ना, इतिहास स्टैक में सबसे ऊपर मौजूद स्टेट को बदलना, और इतिहास में हुए बदलावों के बारे में सूचना पाने के लिए, लिसनर कॉलबैक फ़ंक्शन सेट करना.

  • google.script.url की मदद से, मौजूदा पेज के यूआरएल पैरामीटर और यूआरएल फ़्रैगमेंट को वापस पाया जा सकता है. हालांकि, ऐसा सिर्फ़ तब किया जा सकता है, जब वे मौजूद हों.

ये हिस्ट्री एपीआई, सिर्फ़ वेब ऐप्लिकेशन के लिए उपलब्ध हैं. ये साइडबार, डायलॉग या ऐड-ऑन के लिए काम नहीं करते. इस सुविधा का इस्तेमाल, Google Sites में एम्बेड किए गए वेब ऐप्लिकेशन में करने का सुझाव भी नहीं दिया जाता है.