যদি আপনি একটি স্ক্রিপ্টের জন্য একটি ইউজার ইন্টারফেস তৈরি করেন, তাহলে আপনি স্ক্রিপ্টটি একটি ওয়েব অ্যাপ হিসেবে প্রকাশ করতে পারেন। উদাহরণস্বরূপ, একটি স্ক্রিপ্ট যা ব্যবহারকারীদের একটি সহায়তা দলের সদস্যদের সাথে অ্যাপয়েন্টমেন্ট নির্ধারণ করতে দেয় তা ওয়েব অ্যাপ হিসেবে উপস্থাপন করা সবচেয়ে ভালো হবে যাতে ব্যবহারকারীরা সরাসরি তাদের ব্রাউজার থেকে এটি অ্যাক্সেস করতে পারেন।
স্বতন্ত্র স্ক্রিপ্ট এবং Google Workspace অ্যাপ্লিকেশনের সাথে আবদ্ধ স্ক্রিপ্ট উভয়কেই ওয়েব অ্যাপে রূপান্তর করা যেতে পারে, যদি তারা নীচের প্রয়োজনীয়তাগুলি পূরণ করে।
ওয়েব অ্যাপের জন্য প্রয়োজনীয়তা
একটি স্ক্রিপ্ট ওয়েব অ্যাপ হিসেবে প্রকাশ করা যেতে পারে যদি এটি নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করে:
- এতে একটি
doGet(e)অথবাdoPost(e)ফাংশন রয়েছে। - ফাংশনটি একটি HTML পরিষেবা
HtmlOutputঅবজেক্ট বা একটি Content পরিষেবাTextOutputঅবজেক্ট প্রদান করে।
অনুরোধের প্যারামিটার
যখন কোন ব্যবহারকারী কোন অ্যাপ পরিদর্শন করে অথবা কোন প্রোগ্রাম অ্যাপটিকে HTTP GET অনুরোধ পাঠায়, তখন Apps Script doGet(e) ফাংশনটি চালায়। যখন কোন প্রোগ্রাম অ্যাপটিকে HTTP POST অনুরোধ পাঠায়, তখন Apps Script doPost(e) ফাংশনটি চালায়। উভয় ক্ষেত্রেই, e আর্গুমেন্টটি একটি ইভেন্ট প্যারামিটার উপস্থাপন করে যাতে যেকোনো অনুরোধ প্যারামিটার সম্পর্কে তথ্য থাকতে পারে। ইভেন্ট অবজেক্টের গঠন নীচের টেবিলে দেখানো হয়েছে:
| ক্ষেত্র | |
|---|---|
e.queryString | URL এর কোয়েরি স্ট্রিং অংশের মান, অথবা যদি কোন কোয়েরি স্ট্রিং নির্দিষ্ট না থাকে তাহলে 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 |
উদাহরণস্বরূপ, আপনি নীচে দেখানো হিসাবে একটি URL-এ 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 > New deployment এ ক্লিক করুন।
- "টাইপ নির্বাচন করুন" এর পাশে, স্থাপনার ধরণ সক্ষম করুন > ওয়েব অ্যাপ ক্লিক করুন।
- "ডিপ্লয়মেন্ট কনফিগারেশন" এর অধীনে ক্ষেত্রগুলিতে আপনার ওয়েব অ্যাপ সম্পর্কে তথ্য লিখুন।
- স্থাপন করুন ক্লিক করুন।
আপনি যাদের অ্যাপ ব্যবহার করতে চান তাদের সাথে ওয়েব অ্যাপের URL শেয়ার করতে পারেন, যদি আপনি তাদের অ্যাক্সেস দিয়ে থাকেন।
একটি ওয়েব অ্যাপ স্থাপনার পরীক্ষা করুন
আপনার স্ক্রিপ্টটি ওয়েব অ্যাপ হিসেবে পরীক্ষা করতে, নীচের পদক্ষেপগুলি অনুসরণ করুন:
- স্ক্রিপ্ট প্রজেক্টের উপরের ডানদিকে, Deploy > Test deployments এ ক্লিক করুন।
- "টাইপ নির্বাচন করুন" এর পাশে, স্থাপনার ধরণ সক্ষম করুন > ওয়েব অ্যাপ ক্লিক করুন।
- ওয়েব অ্যাপ URL এর অধীনে, কপি করুন এ ক্লিক করুন।
আপনার ব্রাউজারে URL টি পেস্ট করুন এবং আপনার ওয়েব অ্যাপটি পরীক্ষা করুন।
এই URL টি
/devদিয়ে শেষ হয় এবং শুধুমাত্র সেইসব ব্যবহারকারীরা এটি অ্যাক্সেস করতে পারবেন যাদের স্ক্রিপ্টে সম্পাদনা করার অ্যাক্সেস আছে। অ্যাপের এই উদাহরণটি সর্বদা সাম্প্রতিক সংরক্ষিত কোডটি চালায় এবং শুধুমাত্র ডেভেলপমেন্টের সময় পরীক্ষার জন্য তৈরি।
ওয়েব অ্যাপে গ্রানুলার OAuth বৈশিষ্ট্যটি পরীক্ষা করার জন্য, নিশ্চিত করুন যে আপনার প্রকল্পে ইতিমধ্যে কিছু অনুমোদন নেই। বিদ্যমান কোনও অনুমোদন বাতিল করতে ScriptApp.invalidateAuth ব্যবহার করুন।
অনুমতিসমূহ
আপনি কীভাবে অ্যাপটি চালাবেন তার উপর নির্ভর করে একটি ওয়েব অ্যাপের অনুমতি ভিন্ন হয়:
- আমার মতো অ্যাপটি চালান — এই ক্ষেত্রে, স্ক্রিপ্টটি সর্বদা আপনার মতো, স্ক্রিপ্টের মালিক হিসাবে চালায়, ওয়েব অ্যাপটি যেই অ্যাক্সেস করুক না কেন।
- ওয়েব অ্যাপ অ্যাক্সেসকারী ব্যবহারকারী হিসেবে অ্যাপটি চালান — এই ক্ষেত্রে, স্ক্রিপ্টটি ওয়েব অ্যাপ ব্যবহার করে সক্রিয় ব্যবহারকারীর পরিচয়ের অধীনে চলে। এই অনুমতি পদ্ধতির ফলে ব্যবহারকারী যখন অ্যাক্সেস অনুমোদন করেন তখন ওয়েব অ্যাপটি স্ক্রিপ্ট মালিকের ইমেল ঠিকানা দেখায়।
Google Sites-এ আপনার ওয়েব অ্যাপ এম্বেড করুন
গুগল সাইটে একটি ওয়েব অ্যাপ এম্বেড করার জন্য, প্রথমে এটি স্থাপন করতে হবে। আপনার Deploy ডায়ালগ থেকে স্থাপন করা URL টিও প্রয়োজন।
একটি সাইট পৃষ্ঠায় একটি ওয়েব অ্যাপ এম্বেড করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- আপনি যেখানে ওয়েব অ্যাপ যোগ করতে চান সেই সাইট পৃষ্ঠাটি খুলুন।
- সন্নিবেশ > এম্বেড URL নির্বাচন করুন।
- ওয়েব অ্যাপের URL টি পেস্ট করুন এবং তারপর ADD এ ক্লিক করুন।
ওয়েব অ্যাপটি পৃষ্ঠার প্রিভিউতে একটি ফ্রেমে প্রদর্শিত হয়। আপনি যখন পৃষ্ঠাটি প্রকাশ করেন, তখন আপনার সাইটের দর্শকদের ওয়েব অ্যাপটি স্বাভাবিকভাবে চালানোর আগে অনুমোদনের প্রয়োজন হতে পারে। অননুমোদিত ওয়েব অ্যাপগুলি ব্যবহারকারীকে অনুমোদনের প্রম্পট উপস্থাপন করে।
ওয়েব অ্যাপস এবং ব্রাউজার ইতিহাস
একটি অ্যাপস স্ক্রিপ্ট ওয়েব অ্যাপ থাকা বাঞ্ছনীয় হতে পারে যা একটি বহু-পৃষ্ঠার অ্যাপ্লিকেশন অনুকরণ করে, অথবা URL প্যারামিটারের মাধ্যমে একটি গতিশীল UI নিয়ন্ত্রিত করে। এটি ভালভাবে করার জন্য, আপনি অ্যাপের UI বা পৃষ্ঠার প্রতিনিধিত্ব করার জন্য একটি স্টেট অবজেক্ট সংজ্ঞায়িত করতে পারেন এবং ব্যবহারকারী যখন আপনার অ্যাপ নেভিগেট করেন তখন স্টেটটিকে ব্রাউজার ইতিহাসে ঠেলে দিতে পারেন। আপনি ইতিহাসের ইভেন্টগুলিও শুনতে পারেন যাতে ব্যবহারকারী যখন ব্রাউজার বোতামগুলি দিয়ে এদিক-ওদিক নেভিগেট করে তখন আপনার ওয়েব অ্যাপটি সঠিক UI প্রদর্শন করে। লোডের সময় URL প্যারামিটারগুলি জিজ্ঞাসা করে, আপনি আপনার অ্যাপটিকে সেই প্যারামিটারগুলির উপর ভিত্তি করে গতিশীলভাবে তার UI তৈরি করতে পারেন, যা ব্যবহারকারীকে একটি নির্দিষ্ট অবস্থায় অ্যাপটি শুরু করার অনুমতি দেয়।
ব্রাউজারের ইতিহাসের সাথে লিঙ্কযুক্ত ওয়েব অ্যাপ তৈরিতে সহায়তা করার জন্য অ্যাপস স্ক্রিপ্ট দুটি অ্যাসিঙ্ক্রোনাস ক্লায়েন্ট-সাইড জাভাস্ক্রিপ্ট এপিআই প্রদান করে:
google.script.historyব্রাউজারের ইতিহাসের পরিবর্তনের ক্ষেত্রে গতিশীল প্রতিক্রিয়া প্রদানের পদ্ধতি প্রদান করে। এর মধ্যে রয়েছে: ব্রাউজারের ইতিহাসের উপর স্টেট (আপনি যে সহজ বস্তুগুলি সংজ্ঞায়িত করতে পারেন) পুশ করা, ইতিহাস স্ট্যাকের উপরের স্টেটটি প্রতিস্থাপন করা এবং ইতিহাসের পরিবর্তনের প্রতিক্রিয়া জানাতে একটি শ্রোতা কলব্যাক ফাংশন সেট করা।google.script.urlবর্তমান পৃষ্ঠার URL প্যারামিটার এবং URL খণ্ড, যদি থাকে, তাহলে তা পুনরুদ্ধার করার উপায় প্রদান করে।
এই ইতিহাস API গুলি শুধুমাত্র ওয়েব অ্যাপের জন্য উপলব্ধ। এগুলি সাইডবার, ডায়ালগ বা অ্যাড-অনের জন্য সমর্থিত নয়। এই কার্যকারিতাটি Google Sites এ এমবেড করা ওয়েব অ্যাপগুলিতে ব্যবহারের জন্যও সুপারিশ করা হয় না।