अगर आपने किसी स्क्रिप्ट के लिए यूज़र इंटरफ़ेस बनाया है, तो उस स्क्रिप्ट को एक वेब ऐप्लिकेशन के तौर पर पब्लिश किया जा सकता है. उदाहरण के लिए, ऐसी स्क्रिप्ट जो उपयोगकर्ताओं को सहायता टीम के सदस्यों के साथ अपॉइंटमेंट शेड्यूल करने की सुविधा देती है, उसे वेब ऐप्लिकेशन के तौर पर सबसे सही तरीके से दिखाया जाएगा. इससे, उपयोगकर्ता उस स्क्रिप्ट को सीधे अपने ब्राउज़र से ऐक्सेस कर सकेंगे.
स्टैंडअलोन स्क्रिप्ट और ऐप्लिकेशन 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 |
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 API देता है:
google.script.history
ब्राउज़र के इतिहास में हुए बदलावों के लिए डाइनैमिक रिस्पॉन्स की अनुमति देता है. इसमें शामिल हैं: ब्राउज़र इतिहास में स्टेट (जिन सामान्य ऑब्जेक्ट को तय किया जा सकता है) पुश करना, इतिहास स्टैक में टॉप स्टेट को बदलना, और इतिहास में हुए बदलावों के हिसाब से लिसनर कॉलबैक फ़ंक्शन सेट करना.google.script.url
मौजूदा पेज के यूआरएल पैरामीटर और यूआरएल फ़्रैगमेंट को फिर से पाने का तरीका बताता है, अगर वे मौजूद होते हैं.
ये इतिहास एपीआई सिर्फ़ वेब ऐप्लिकेशन के लिए उपलब्ध हैं. ये साइडबार, डायलॉग या ऐड-ऑन के साथ काम नहीं करते. Google Sites में एम्बेड किए गए वेब ऐप्लिकेशन में भी इस सुविधा का इस्तेमाल करने का सुझाव नहीं दिया जाता.