अगर आपने स्क्रिप्ट के लिए यूज़र इंटरफ़ेस बनाया है, तो उसे वेब ऐप्लिकेशन के तौर पर पब्लिश किया जा सकता है. उदाहरण के लिए, एक ऐसी स्क्रिप्ट जो उपयोगकर्ताओं को सहायता टीम के सदस्यों के साथ अपॉइंटमेंट शेड्यूल करने की सुविधा देती है. इसे वेब ऐप्लिकेशन के तौर पर दिखाना बेहतर होगा, ताकि उपयोगकर्ता उसे सीधे अपने ब्राउज़र से ऐक्सेस कर सकें.
स्टैंडअलोन स्क्रिप्ट और Google Workspace ऐप्लिकेशन से जुड़ी स्क्रिप्ट, दोनों को वेब ऐप्लिकेशन में बदला जा सकता है. हालांकि, इसके लिए ज़रूरी है कि वे नीचे दी गई ज़रूरी शर्तों को पूरा करते हों.
वेब ऐप्लिकेशन के लिए ज़रूरी शर्तें
स्क्रिप्ट को वेब ऐप्लिकेशन के तौर पर पब्लिश किया जा सकता है. इसके लिए, ज़रूरी है कि वह इन शर्तों को पूरा करती हो:
- इसमें
doGet(e)
याdoPost(e)
फ़ंक्शन होता है. - यह फ़ंक्शन, एचटीएमएल सेवा
HtmlOutput
ऑब्जेक्ट या कॉन्टेंट सेवाTextOutput
ऑब्जेक्ट दिखाता है.
अनुरोध के पैरामीटर
जब कोई उपयोगकर्ता किसी ऐप्लिकेशन या प्रोग्राम पर जाता है, तो ऐप्लिकेशन को एचटीटीपी GET
अनुरोध भेजा जाता है. ऐसे में, Apps Script doGet(e)
फ़ंक्शन का इस्तेमाल करता है. जब कोई प्रोग्राम, ऐप्लिकेशन को एचटीटीपी
POST
अनुरोध भेजता है, तो Apps Script में doPost(e)
का इस्तेमाल किया जाता है. दोनों मामलों में, e
आर्ग्युमेंट एक ऐसा इवेंट पैरामीटर दिखाता है जिसमें किसी भी अनुरोध पैरामीटर के बारे में जानकारी हो सकती है. इवेंट ऑब्जेक्ट का स्ट्रक्चर नीचे दी गई टेबल में दिखाया गया है:
फ़ील्ड | |
---|---|
e.queryString |
यूआरएल की क्वेरी स्ट्रिंग वाले हिस्से का मान या अगर कोई क्वेरी स्ट्रिंग नहीं दी गई है, तो name=alice&n=1&n=2 |
e.parameter |
अनुरोध पैरामीटर से जुड़े कुंजी/वैल्यू पेयर का ऑब्जेक्ट. एक से ज़्यादा वैल्यू वाले पैरामीटर के लिए, सिर्फ़ पहली वैल्यू दिखाई जाती है. {"name": "alice", "n": "1"} |
e.parameters |
एक ऑब्जेक्ट जो {"name": ["alice"], "n": ["1", "2"]} |
e.pathInfo |
|
e.contextPath |
इस्तेमाल नहीं किया गया, हमेशा खाली स्ट्रिंग. |
e.contentLength |
पीओएसटी अनुरोध के लिए अनुरोध के लेख की लंबाई या जीईटी अनुरोधों के लिए 332 |
e.postData.length |
332 |
e.postData.type |
पीओएसटी का एमआईएमई टाइप text/csv |
e.postData.contents |
पीओएसटी का कॉन्टेंट टेक्स्ट 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
}
स्क्रिप्ट को वेब ऐप्लिकेशन के तौर पर डिप्लॉय करें
स्क्रिप्ट को वेब ऐप्लिकेशन के तौर पर डिप्लॉय करने के लिए, यह तरीका अपनाएं:
- स्क्रिप्ट प्रोजेक्ट में सबसे ऊपर दाईं ओर, Deploy > नया डिप्लॉयमेंट पर क्लिक करें.
- "टाइप चुनें" के आगे,'डिप्लॉयमेंट टाइप चालू करें' > वेब ऐप्लिकेशन पर क्लिक करें.
- "डिप्लॉयमेंट कॉन्फ़िगरेशन" में दिए गए फ़ील्ड में अपने वेब ऐप्लिकेशन की जानकारी डालें.
- डिप्लॉय करें पर क्लिक करें.
जिन लोगों को आपके ऐप्लिकेशन का इस्तेमाल करना है उनके साथ वेब ऐप्लिकेशन का यूआरएल शेयर किया जा सकता है. हालांकि, इसके लिए ज़रूरी है कि आपने उन्हें ऐक्सेस दिया हो.
वेब ऐप्लिकेशन डिप्लॉयमेंट की जांच करना
अपनी स्क्रिप्ट को वेब ऐप्लिकेशन के रूप में टेस्ट करने के लिए, नीचे दिया गया तरीका अपनाएं:
- स्क्रिप्ट प्रोजेक्ट में सबसे ऊपर दाईं ओर, Deploy > डिप्लॉयमेंट की जांच करें पर क्लिक करें.
- "टाइप चुनें" के बगल में,'डिप्लॉयमेंट टाइप चालू करें' > वेब ऐप्लिकेशन पर क्लिक करें.
- वेब ऐप्लिकेशन के यूआरएल के नीचे, कॉपी करें पर क्लिक करें.
यूआरएल को अपने ब्राउज़र में चिपकाएं और अपने वेब ऐप्लिकेशन की जांच करें.
यह यूआरएल
/dev
पर खत्म होता है और इसे सिर्फ़ वे उपयोगकर्ता ऐक्सेस कर सकते हैं जिनके पास स्क्रिप्ट में बदलाव करने का ऐक्सेस है. ऐप्लिकेशन का यह इंस्टेंस हमेशा सबसे हाल ही में सेव किया गया कोड चलाता है और इसे सिर्फ़ डेवलपमेंट के दौरान टेस्ट करने के लिए बनाया गया है.
अनुमतियां
ऐप्लिकेशन को एक्ज़ीक्यूट करने के लिए चुने गए तरीके के आधार पर, वेब ऐप्लिकेशन के लिए अनुमतियां अलग-अलग होती हैं:
- ऐप्लिकेशन को मेरी तरह एक्ज़ीक्यूट करें—इस मामले में, स्क्रिप्ट हमेशा आपकी तरह ही काम करेगी, यानी कि स्क्रिप्ट के मालिक. इस बात से कोई फ़र्क़ नहीं पड़ता कि वेब ऐप्लिकेशन को कौन ऐक्सेस करता है.
- ऐप्लिकेशन को, वेब ऐप्लिकेशन को ऐक्सेस करने वाले उपयोगकर्ता के तौर पर एक्ज़ीक्यूट करें—इस मामले में, स्क्रिप्ट वेब ऐप्लिकेशन का इस्तेमाल करने वाले सक्रिय उपयोगकर्ता की पहचान से चलती है. इस अनुमति एप्रोच की वजह से, जब उपयोगकर्ता ऐक्सेस की अनुमति देता है, तो वेब ऐप्लिकेशन स्क्रिप्ट के मालिक का ईमेल दिखाता है.
अपने वेब ऐप्लिकेशन को Google Sites में एम्बेड करना
Google Sites में वेब ऐप्लिकेशन को एम्बेड करने के लिए, सबसे पहले उसे डिप्लॉय करना ज़रूरी है. आपको Deploy
डायलॉग से डिप्लॉय किया गया यूआरएल की भी ज़रूरत होगी.
किसी वेब ऐप्लिकेशन को साइटें पेज में एम्बेड करने के लिए, यह तरीका अपनाएं:
- वह साइट पेज खोलें जहां आपको वेब ऐप्लिकेशन जोड़ना है.
- शामिल करें > यूआरएल एम्बेड करें को चुनें.
- वेब ऐप्लिकेशन का यूआरएल चिपकाएं और जोड़ें पर क्लिक करें.
वेब ऐप्लिकेशन, पेज की झलक में एक फ़्रेम में दिखता है. पेज को पब्लिश करने पर, हो सकता है कि आपकी साइट के दर्शकों को वेब ऐप्लिकेशन के सामान्य रूप से चलने से पहले उसे अनुमति देनी पड़े. अनधिकृत वेब ऐप्लिकेशन उपयोगकर्ता को प्राधिकरण अनुरोध दिखाते हैं.
वेब ऐप्लिकेशन और ब्राउज़र इतिहास
अगर आपको Apps Script वेब ऐप्लिकेशन में, एक से ज़्यादा पेज वाले ऐप्लिकेशन को सिम्युलेट करना हो या ऐसे ऐप्लिकेशन को सिम्युलेट करना हो जिसमें यूआरएल पैरामीटर से कंट्रोल किए जाने वाले डाइनैमिक यूज़र इंटरफ़ेस (यूआई) हो. यह ठीक करने के लिए, ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) या पेज को दिखाने के लिए स्टेट ऑब्जेक्ट को तय किया जा सकता है. साथ ही, जब उपयोगकर्ता आपके ऐप्लिकेशन पर नेविगेट करता है, तब इस स्थिति को ब्राउज़र इतिहास में भेजा जा सकता है. इतिहास के इवेंट को सुना भी जा सकता है, ताकि जब उपयोगकर्ता ब्राउज़र बटन से आगे-पीछे करे, तब आपका वेब ऐप्लिकेशन सही यूज़र इंटरफ़ेस (यूआई) दिखाए. लोड होने के समय यूआरएल पैरामीटर से क्वेरी करके, उन पैरामीटर के आधार पर अपने ऐप्लिकेशन को डाइनैमिक तौर पर यूज़र इंटरफ़ेस (यूआई) बनाया जा सकता है. इससे उपयोगकर्ता, ऐप्लिकेशन को किसी खास स्थिति में शुरू कर सकता है.
Apps Script, ब्राउज़र इतिहास से लिंक किए गए वेब ऐप्लिकेशन बनाने में मदद करने के लिए, दो एसिंक्रोनस क्लाइंट-साइड JavaScript API उपलब्ध कराती है:
google.script.history
में, ब्राउज़र के इतिहास में हुए बदलावों के लिए डाइनैमिक रिस्पॉन्स की अनुमति देने के तरीके मौजूद हैं. इसमें ये शामिल हैं: ब्राउज़र के इतिहास में स्थितियां (आसान ऑब्जेक्ट जिन्हें तय किया जा सकता है) पुश करना, इतिहास स्टैक में टॉप स्टेट बदलना, और इतिहास में हुए बदलावों का जवाब देने के लिए लिसनर कॉलबैक फ़ंक्शन सेट करना.google.script.url
का इस्तेमाल करके, मौजूदा पेज के यूआरएल पैरामीटर और यूआरएल फ़्रैगमेंट को फिर से वापस पाया जा सकता है. ऐसा तब किया जाता है, जब यूआरएल पैरामीटर मौजूद हों.
ये इतिहास एपीआई सिर्फ़ वेब ऐप्लिकेशन के लिए उपलब्ध हैं. ये साइडबार, डायलॉग या ऐड-ऑन के साथ काम नहीं करते. Google Sites में एम्बेड किए गए वेब ऐप्लिकेशन में इस्तेमाल करने के लिए, इस सुविधा का सुझाव नहीं दिया जाता.