যদি আপনি স্ক্রিপ্টটির জন্য একটি ইউজার ইন্টারফেস তৈরি করেন, তাহলে এটিকে একটি ওয়েব অ্যাপ হিসেবে প্রকাশ করুন। উদাহরণস্বরূপ, একটি স্ক্রিপ্ট যা ব্যবহারকারীদের একটি সহায়তা দলের সদস্যদের সাথে অ্যাপয়েন্টমেন্ট নির্ধারণ করতে দেয়, সেটিকে ওয়েব অ্যাপ হিসেবে উপস্থাপন করা সবচেয়ে ভালো যাতে ব্যবহারকারীরা সরাসরি তাদের ব্রাউজার থেকে এটি অ্যাক্সেস করতে পারেন।
স্বতন্ত্র স্ক্রিপ্ট এবং Google Workspace অ্যাপ্লিকেশনের সাথে আবদ্ধ স্ক্রিপ্ট উভয়কেই ওয়েব অ্যাপে রূপান্তর করা যেতে পারে, যদি তারা নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করে।
ওয়েব অ্যাপের জন্য প্রয়োজনীয়তা
একটি স্ক্রিপ্ট ওয়েব অ্যাপ হিসেবে প্রকাশ করা যেতে পারে যদি এটি নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করে:
- এতে একটি
doGetঅথবাdoPostফাংশন রয়েছে। - ফাংশনটি একটি HTML পরিষেবা
HtmlOutputঅবজেক্ট বা একটি Content পরিষেবাTextOutputঅবজেক্ট প্রদান করে।
অনুরোধের প্যারামিটার
যখন কোন ব্যবহারকারী কোন অ্যাপ পরিদর্শন করে অথবা কোন প্রোগ্রাম অ্যাপটিকে HTTP GET অনুরোধ পাঠায়, তখন Google Apps Script doGet ফাংশনটি চালায়। যখন কোন প্রোগ্রাম অ্যাপটিকে HTTP POST অনুরোধ পাঠায়, তখন Apps Script doPost চালায়। উভয় ক্ষেত্রেই, 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 নিম্নলিখিত আউটপুট প্রদান করে:
{
"queryString": "username=jsmith&age=21",
"parameter": {
"username": "jsmith",
"age": "21"
},
"contextPath": "",
"parameters": {
"username": [
"jsmith"
],
"age": [
"21"
]
},
"contentLength": -1
}
নিম্নলিখিত প্যারামিটারের নামগুলি সিস্টেম দ্বারা সংরক্ষিত এবং URL প্যারামিটার বা POST বডিতে ব্যবহার করা উচিত নয়:
-
c -
sid
এই প্যারামিটারগুলি ব্যবহার করলে HTTP 405 এর প্রতিক্রিয়ায় ত্রুটি বার্তাটি আসতে পারে "দুঃখিত, আপনি যে ফাইলটি অনুরোধ করেছেন তা বিদ্যমান নেই।" সম্ভব হলে, বিভিন্ন প্যারামিটার নাম ব্যবহার করার জন্য আপনার স্ক্রিপ্ট আপডেট করুন।
একটি স্ক্রিপ্টকে ওয়েব অ্যাপ হিসেবে স্থাপন করুন
একটি স্ক্রিপ্টকে ওয়েব অ্যাপ হিসেবে স্থাপন করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- স্ক্রিপ্ট প্রজেক্টের উপরের ডানদিকে, Deploy > New deployment এ ক্লিক করুন।
- "টাইপ নির্বাচন করুন" এর পাশে, স্থাপনার ধরণ সক্ষম করুন > ওয়েব অ্যাপ ক্লিক করুন।
- "ডিপ্লয়মেন্ট কনফিগারেশন" এর অধীনে ক্ষেত্রগুলিতে আপনার ওয়েব অ্যাপ সম্পর্কে তথ্য লিখুন।
- স্থাপন করুন ক্লিক করুন।
যাদের আপনি আপনার অ্যাপ ব্যবহার করতে চান তাদের সাথে ওয়েব অ্যাপের URL শেয়ার করুন, যদি আপনি তাদের অ্যাক্সেস দিয়ে থাকেন।
একটি ডোমেনে স্থাপন করা ওয়েব অ্যাপগুলির মালিকানা অন্য ডোমেনের শেয়ার্ড ড্রাইভ বা অ্যাকাউন্টে পরিবর্তিত হলে তা কাজ করা বন্ধ করে দেয়। নতুন মালিক বা সহযোগীকে নতুন ডোমেনে ওয়েব অ্যাপটি পুনরায় স্থাপন করে এটি সংশোধন করা যেতে পারে। বিকল্পভাবে, যদি ওয়েব অ্যাপটি তার মূল ডোমেনে ফিরিয়ে আনা হয় তবে ওয়েব অ্যাপটি পুনরায় স্থাপন না করেই সেই ডোমেনের জন্য আবার কাজ করা শুরু করে।
একটি ওয়েব অ্যাপ স্থাপনার পরীক্ষা করুন
আপনার স্ক্রিপ্টটি একটি ওয়েব অ্যাপ হিসেবে পরীক্ষা করতে, নীচের পদক্ষেপগুলি অনুসরণ করুন:
- স্ক্রিপ্ট প্রজেক্টের উপরের ডানদিকে, Deploy > Test deployments এ ক্লিক করুন।
- "টাইপ নির্বাচন করুন" এর পাশে, স্থাপনার ধরণ সক্ষম করুন > ওয়েব অ্যাপ ক্লিক করুন।
- ওয়েব অ্যাপ URL এর অধীনে, কপি করুন এ ক্লিক করুন।
আপনার ব্রাউজারে URL টি পেস্ট করুন এবং আপনার ওয়েব অ্যাপটি পরীক্ষা করুন।
এই URL টি
/devদিয়ে শেষ হয় এবং শুধুমাত্র সেইসব ব্যবহারকারীরা এটি অ্যাক্সেস করতে পারবেন যাদের স্ক্রিপ্টে সম্পাদনা করার অ্যাক্সেস আছে। অ্যাপের এই উদাহরণটি সর্বদা সাম্প্রতিক সংরক্ষিত কোডটি চালায় এবং শুধুমাত্র ডেভেলপমেন্টের সময় পরীক্ষার জন্য তৈরি।
ওয়েব অ্যাপে গ্রানুলার OAuth বৈশিষ্ট্যটি পরীক্ষা করার জন্য, নিশ্চিত করুন যে আপনার প্রকল্পে ইতিমধ্যে কিছু অনুমোদন নেই। বিদ্যমান অনুমোদন বাতিল করতে ScriptApp.invalidateAuth ব্যবহার করুন। যে কোনও ওয়েব অ্যাপ যা ইতিমধ্যেই স্থাপন করা হয়েছে এবং সক্রিয় ব্যবহারকারীর পরিচয়ের অধীনে চলছে, ম্যানিফেস্টে executeAs JSON ক্ষেত্রটি USER_DEPLOYING এ পরিবর্তন করুন।
ডেভেলপার হিসেবে চালানোর জন্য ওয়েব অ্যাপ স্থাপন করার সময়, ScriptApp.getOAuthToken এর মাধ্যমে প্রাপ্ত OAuth টোকেনগুলি পরিচালনা করার সময় খুব সাবধানতা অবলম্বন করুন। এই টোকেনগুলি অন্যান্য অ্যাপ্লিকেশনগুলিকে আপনার ডেটাতে অ্যাক্সেস দিতে পারে — এগুলি কখনই ক্লায়েন্টের কাছে প্রেরণ করবেন না।
অনুমতিসমূহ
আপনি কীভাবে অ্যাপটি চালাবেন তার উপর নির্ভর করে একটি ওয়েব অ্যাপের অনুমতি ভিন্ন হয়:
- আমার মতো অ্যাপটি চালান — এই ক্ষেত্রে, স্ক্রিপ্টটি সর্বদা আপনার মতো, স্ক্রিপ্টের মালিক হিসাবে চালায়, ওয়েব অ্যাপটি যেই অ্যাক্সেস করুক না কেন।
- ওয়েব অ্যাপ অ্যাক্সেসকারী ব্যবহারকারী হিসেবে অ্যাপটি চালান — এই ক্ষেত্রে, স্ক্রিপ্টটি ওয়েব অ্যাপ ব্যবহার করে সক্রিয় ব্যবহারকারীর পরিচয়ের অধীনে চলে। এই অনুমতি পদ্ধতির ফলে ব্যবহারকারী যখন অ্যাক্সেস অনুমোদন করেন তখন ওয়েব অ্যাপটি স্ক্রিপ্ট মালিকের ইমেল ঠিকানা দেখায়।
অপব্যবহার রোধ করার জন্য, অ্যাপস স্ক্রিপ্ট নতুন ব্যবহারকারীরা ব্যবহারকারী হিসেবে কার্যকর করা কোনও ওয়েব অ্যাপকে অনুমোদন করার হারের উপর সীমা আরোপ করে। এই সীমাগুলি অন্যান্য বিষয়ের মধ্যে, প্রকাশনা অ্যাকাউন্টটি Google Workspace ডোমেনের অংশ কিনা তার উপর নির্ভর করে।
শেয়ার্ড ড্রাইভ ব্যবহার করে ওয়েব অ্যাপগুলিতে সহযোগিতা করুন। যখন একটি শেয়ার্ড ড্রাইভে একটি ওয়েব অ্যাপ স্থাপন করা হয়, তখন "আপনার মতো করে চালানো" নির্বাচন করলে ওয়েব অ্যাপটি সেই ব্যবহারকারীর কর্তৃত্বের অধীনে কার্যকর হয় যিনি এটি স্থাপন করেছিলেন (যেহেতু কোনও স্ক্রিপ্ট মালিক নেই)।
Google Sites {:#embed-web-app} এ আপনার ওয়েব অ্যাপ এম্বেড করুন
ক্ষতিকারক ব্যবহার রোধ করার জন্য এম্বেডেড ওয়েব অ্যাপগুলিতে এখনও অ্যাক্সেসের অনুমতি রয়েছে। যদি আপনার এম্বেডেড ওয়েব অ্যাপটি কাজ করছে বলে মনে না হয়, তাহলে ওয়েব অ্যাপের মালিক এবং ডোমেন প্রশাসকের দ্বারা সেট করা অনুমতিগুলি এটি ব্যবহারের অনুমতি দেয় কিনা তা পরীক্ষা করে দেখুন।
Sites-এ একটি ওয়েব অ্যাপ এম্বেড করার জন্য, প্রথমে এটি স্থাপন করতে হবে। আপনার Deploy ডায়ালগ থেকে Deployed URL-টিও প্রয়োজন।
একটি সাইট পৃষ্ঠায় একটি ওয়েব অ্যাপ এম্বেড করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- আপনি যেখানে ওয়েব অ্যাপ যোগ করতে চান সেই সাইট পৃষ্ঠাটি খুলুন।
- সন্নিবেশ > এম্বেড URL নির্বাচন করুন।
- ওয়েব অ্যাপের URL টি পেস্ট করুন এবং তারপর ADD এ ক্লিক করুন।
ওয়েব অ্যাপটি পৃষ্ঠার প্রিভিউতে একটি ফ্রেমে প্রদর্শিত হয়। আপনি যখন পৃষ্ঠাটি প্রকাশ করেন, তখন আপনার সাইটের দর্শকদের ওয়েব অ্যাপটি স্বাভাবিকভাবে চালানোর আগে অনুমোদনের প্রয়োজন হতে পারে। অননুমোদিত ওয়েব অ্যাপগুলি ব্যবহারকারীকে অনুমোদনের প্রম্পট উপস্থাপন করে।
ওয়েব অ্যাপস এবং ব্রাউজার ইতিহাস
একটি মাল্টি-পেজ অ্যাপ্লিকেশন, অথবা URL প্যারামিটার ব্যবহার করে নিয়ন্ত্রিত একটি ডায়নামিক UI সহ একটি সিমুলেট করতে, অ্যাপের UI বা পৃষ্ঠা প্রতিনিধিত্ব করার জন্য একটি স্টেট অবজেক্ট সংজ্ঞায়িত করুন এবং ব্যবহারকারী যখন আপনার অ্যাপ নেভিগেট করেন তখন স্টেটটিকে ব্রাউজার ইতিহাসে পুশ করুন। ইতিহাসের ইভেন্টগুলি শুনুন যাতে ব্যবহারকারী যখন ব্রাউজার বোতামগুলি দিয়ে এদিক-ওদিক নেভিগেট করেন তখন আপনার ওয়েব অ্যাপটি সঠিক UI প্রদর্শন করে। লোডের সময় URL প্যারামিটারগুলি জিজ্ঞাসা করে, আপনার অ্যাপটিকে সেই প্যারামিটারগুলির উপর ভিত্তি করে গতিশীলভাবে তার UI তৈরি করতে দিন, যাতে ব্যবহারকারী একটি নির্দিষ্ট অবস্থায় অ্যাপটি শুরু করতে পারেন।
ব্রাউজারের ইতিহাসের সাথে লিঙ্কযুক্ত ওয়েব অ্যাপ তৈরিতে সহায়তা করার জন্য অ্যাপস স্ক্রিপ্ট দুটি অ্যাসিঙ্ক্রোনাস ক্লায়েন্ট-সাইড জাভাস্ক্রিপ্ট এপিআই প্রদান করে:
google.script.historyব্রাউজারের ইতিহাসের পরিবর্তনের ক্ষেত্রে গতিশীল প্রতিক্রিয়া প্রদানের পদ্ধতি প্রদান করে। এর মধ্যে রয়েছে: ব্রাউজারের ইতিহাসের উপর অবস্থা (আপনার সংজ্ঞায়িত সহজ বস্তু) পুশ করা, ইতিহাস স্ট্যাকের উপরের অবস্থা প্রতিস্থাপন করা এবং ইতিহাসের পরিবর্তনের প্রতিক্রিয়া জানাতে একটি শ্রোতা কলব্যাক ফাংশন সেট করা।google.script.urlবর্তমান পৃষ্ঠার URL প্যারামিটার এবং URL খণ্ড, যদি থাকে, তাহলে তা পুনরুদ্ধার করার উপায় প্রদান করে।
এই ইতিহাস API গুলি শুধুমাত্র ওয়েব অ্যাপের জন্য উপলব্ধ। এগুলি সাইডবার, ডায়ালগ বা অ্যাড-অনের জন্য সমর্থিত নয়। এই কার্যকারিতাটি Sites এ এমবেড করা ওয়েব অ্যাপগুলিতে ব্যবহারের জন্যও সুপারিশ করা হয় না।