अगर आपने किसी स्क्रिप्ट के लिए यूज़र इंटरफ़ेस बनाया है, तो उस स्क्रिप्ट को वेब ऐप्लिकेशन के तौर पर पब्लिश किया जा सकता है. उदाहरण के लिए, ऐसी स्क्रिप्ट जिसकी मदद से उपयोगकर्ता, सहायता टीम के सदस्यों के साथ अपॉइंटमेंट शेड्यूल कर सकते हैं उसे वेब ऐप्लिकेशन के तौर पर दिखाया जा सकता है, ताकि उपयोगकर्ता उसे सीधे अपने ब्राउज़र से ऐक्सेस कर सकें.
स्टैंडअलोन स्क्रिप्ट और ऐप्लिकेशन से जुड़ी स्क्रिप्ट, दोनों को वेब ऐप्लिकेशन में बदला जा सकता है. हालांकि, इसके लिए ज़रूरी है कि वे यहां दी गई शर्तें पूरी करें.
वेब ऐप्लिकेशन के लिए ज़रूरी शर्तें
किसी स्क्रिप्ट को वेब ऐप्लिकेशन के तौर पर पब्लिश किया जा सकता है. इसके लिए, यह ज़रूरी है कि वह इन शर्तों को पूरा करती हो:
- इसमें
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 |
POST अनुरोधों के लिए अनुरोध बॉडी की लंबाई या GET अनुरोधों के लिए 332 |
e.postData.length |
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
}
स्क्रिप्ट को वेब ऐप्लिकेशन के तौर पर डिप्लॉय करना
स्क्रिप्ट को वेब ऐप्लिकेशन के तौर पर डिप्लॉय करने के लिए, यह तरीका अपनाएं:
- स्क्रिप्ट प्रोजेक्ट में सबसे ऊपर दाईं ओर, डिप्लॉय करें > नया डिप्लॉयमेंट पर क्लिक करें.
- "टाइप चुनें" के बगल में, डिप्लॉयमेंट टाइप चालू करें > वेब ऐप्लिकेशन पर क्लिक करें.
- "डिप्लॉयमेंट कॉन्फ़िगरेशन" में मौजूद फ़ील्ड में, अपने वेब ऐप्लिकेशन के बारे में जानकारी डालें.
- डिप्लॉय करें पर क्लिक करें.
वेब ऐप्लिकेशन का यूआरएल उन लोगों के साथ शेयर किया जा सकता है जिन्हें आपका ऐप्लिकेशन इस्तेमाल करना है. हालांकि, इसके लिए ज़रूरी है कि आपने उन्हें ऐक्सेस दिया हो.
वेब ऐप्लिकेशन के डिप्लॉयमेंट की जांच करना
अपनी स्क्रिप्ट को वेब ऐप्लिकेशन के तौर पर टेस्ट करने के लिए, यह तरीका अपनाएं:
- स्क्रिप्ट प्रोजेक्ट में सबसे ऊपर दाईं ओर, डिप्लॉय करें > डिप्लॉयमेंट की जांच करें पर क्लिक करें.
- "टाइप चुनें" के बगल में, डिप्लॉयमेंट टाइप चालू करें पर क्लिक करें > वेब ऐप्लिकेशन.
- वेब ऐप्लिकेशन के यूआरएल में जाकर, कॉपी करें पर क्लिक करें.
यूआरएल को अपने ब्राउज़र में चिपकाएं और अपने वेब ऐप्लिकेशन की जांच करें.
यह यूआरएल
/dev
पर खत्म होता है. इसे सिर्फ़ वे उपयोगकर्ता ऐक्सेस कर सकते हैं जिनके पास स्क्रिप्ट में बदलाव करने का ऐक्सेस है. ऐप्लिकेशन का यह इंस्टेंस, हमेशा सबसे हाल ही में सेव किए गए कोड को चलाता है. इसका मकसद, ऐप्लिकेशन के डेवलपमेंट के दौरान टेस्टिंग करना है.
अनुमतियां
वेब ऐप्लिकेशन के लिए अनुमतियां अलग-अलग होती हैं. यह इस बात पर निर्भर करता है कि आपने ऐप्लिकेशन को कैसे चलाया है:
- ऐप्लिकेशन को मेरे तौर पर चलाएं—इस मामले में, स्क्रिप्ट हमेशा आपके तौर पर, यानी स्क्रिप्ट के मालिक के तौर पर चलती है. भले ही, वेब ऐप्लिकेशन को कोई भी ऐक्सेस करे.
- वेब ऐप्लिकेशन को ऐक्सेस करने वाले उपयोगकर्ता के तौर पर ऐप्लिकेशन को चलाएं—इस मामले में, स्क्रिप्ट, वेब ऐप्लिकेशन का इस्तेमाल करने वाले चालू उपयोगकर्ता की पहचान के तहत चलती है. अनुमति के इस तरीके की वजह से, जब उपयोगकर्ता ऐक्सेस की अनुमति देता है, तो वेब ऐप्लिकेशन स्क्रिप्ट के मालिक का ईमेल दिखाता है.
Google Sites में अपना वेब ऐप्लिकेशन एम्बेड करना
Google Sites में वेब ऐप्लिकेशन को जोड़ने के लिए, उसे पहले डिप्लॉय करना होगा. आपको Deploy
डायलॉग से डिप्लॉय किया गया यूआरएल भी चाहिए.
किसी वेब ऐप्लिकेशन को साइटें पेज में जोड़ने के लिए, यह तरीका अपनाएं:
- वह साइटें पेज खोलें जहां आपको वेब ऐप्लिकेशन जोड़ना है.
- शामिल करें > यूआरएल जोड़ें को चुनें.
- वेब ऐप्लिकेशन का यूआरएल चिपकाएं और फिर जोड़ें पर क्लिक करें.
वेब ऐप्लिकेशन, पेज की झलक में फ़्रेम में दिखता है. पेज को पब्लिश करने पर, साइट पर आने वाले लोगों को वेब ऐप्लिकेशन के सामान्य तरीके से काम करने से पहले, उसे अनुमति देनी पड़ सकती है. बिना अनुमति वाले वेब ऐप्लिकेशन, उपयोगकर्ता को अनुमति देने के लिए प्रॉम्प्ट दिखाते हैं.
वेब ऐप्लिकेशन और ब्राउज़र इतिहास
ऐसा हो सकता है कि आपको Apps Script वेब ऐप्लिकेशन में, कई पेजों वाले ऐप्लिकेशन या यूआरएल पैरामीटर की मदद से कंट्रोल किए जाने वाले डाइनैमिक यूज़र इंटरफ़ेस (यूआई) वाले ऐप्लिकेशन को सिम्युलेट करना हो. इसे बेहतर तरीके से करने के लिए, ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) या पेज को दिखाने के लिए कोई स्टेटस ऑब्जेक्ट तय किया जा सकता है. साथ ही, जब उपयोगकर्ता आपके ऐप्लिकेशन पर नेविगेट करता है, तो स्टेटस को ब्राउज़र के इतिहास में डाला जा सकता है. इसके अलावा, इतिहास से जुड़े इवेंट को भी सुना जा सकता है, ताकि जब उपयोगकर्ता ब्राउज़र के बटन का इस्तेमाल करके आगे-पीछे नेविगेट करे, तब आपका वेब ऐप्लिकेशन सही यूआई दिखा सके. लोड होने के समय यूआरएल पैरामीटर से क्वेरी करके, अपने ऐप्लिकेशन को उन पैरामीटर के आधार पर डाइनैमिक तौर पर यूज़र इंटरफ़ेस (यूआई) बनाने के लिए कहा जा सकता है. इससे उपयोगकर्ता, ऐप्लिकेशन को किसी खास स्थिति में शुरू कर सकता है.
ब्राउज़र इतिहास से लिंक किए गए वेब ऐप्लिकेशन बनाने में मदद करने के लिए, Apps Script दो एसिंक्रोनस क्लाइंट-साइड JavaScript एपीआई उपलब्ध कराता है:
google.script.history
इससे, ब्राउज़र इतिहास में होने वाले बदलावों के हिसाब से डाइनैमिक रिस्पॉन्स देने के तरीके मिलते हैं. इसमें ये काम शामिल हैं: ब्राउज़र के इतिहास में स्टेटस (ऐसे आसान ऑब्जेक्ट जिन्हें आप तय कर सकते हैं) को पुश करना, इतिहास स्टैक में सबसे ऊपर मौजूद स्टेटस को बदलना, और इतिहास में हुए बदलावों का जवाब देने के लिए, एक लिसनर कॉलबैक फ़ंक्शन सेट करना.google.script.url
, मौजूदा पेज के यूआरएल पैरामीटर और यूआरएल फ़्रैगमेंट को वापस पाने का तरीका उपलब्ध कराता है. हालांकि, ऐसा तब ही किया जा सकता है, जब वे मौजूद हों.
ये इतिहास एपीआई सिर्फ़ वेब ऐप्लिकेशन के लिए उपलब्ध हैं. ये साइडबार, डायलॉग या ऐड-ऑन के लिए काम नहीं करते. Google Sites में एम्बेड किए गए वेब ऐप्लिकेशन में भी इस सुविधा का इस्तेमाल करने का सुझाव नहीं दिया जाता.