Google Docs, Google Sheets, বা Google Forms-এর সাথে সংযুক্ত Google Apps Script প্রোজেক্টগুলো ইউজার-ইন্টারফেস এলিমেন্ট, যেমন আগে থেকে তৈরি অ্যালার্ট, প্রম্পট, টোস্ট, ডায়ালগ এবং সাইডবার প্রদর্শন করতে পারে। এই এলিমেন্টগুলোতে সাধারণত কাস্টম HTML সার্ভিস কন্টেন্ট থাকে এবং এগুলো প্রায়শই মেনু আইটেম থেকে খোলা হয়। Forms-এ, ইউজার-ইন্টারফেস এলিমেন্টগুলো শুধুমাত্র সেই এডিটরের কাছে দৃশ্যমান হয় যিনি ফর্মটি পরিবর্তন করার জন্য খোলেন, কোনো রেসপন্ডেন্টের কাছে নয়।
সতর্কীকরণ ডায়ালগ

অ্যালার্ট হলো একটি পূর্ব-নির্মিত ডায়ালগ বক্স যা ডকস, শীটস, স্লাইডস বা ফর্মস এডিটরের ভিতরে খোলে। এটি একটি বার্তা এবং একটি ওকে (OK) বাটন প্রদর্শন করে; একটি শিরোনাম এবং বিকল্প বাটনগুলো ঐচ্ছিক। এটি একটি ওয়েব ব্রাউজারের মধ্যে ক্লায়েন্ট-সাইড জাভাস্ক্রিপ্টে window.alert কল করার অনুরূপ।
ডায়ালগটি খোলা থাকা অবস্থায় অ্যালার্টগুলো সার্ভার-সাইড স্ক্রিপ্টকে স্থগিত করে দেয়। ব্যবহারকারী ডায়ালগটি বন্ধ করার পর স্ক্রিপ্টটি আবার চালু হয়, কিন্তু এই স্থগিতাবস্থার সময় JDBC সংযোগগুলো স্থায়ী থাকে না।
নিচের উদাহরণে যেমন দেখানো হয়েছে, Docs, Forms, Slides, এবং Sheets সবগুলোই Ui.alert মেথডটি ব্যবহার করে, যার তিনটি ভ্যারিয়েন্ট রয়েছে। ডিফল্ট OK বাটনটি ওভাররাইড করতে, buttons আর্গুমেন্ট হিসেবে Ui.ButtonSet enum থেকে একটি ভ্যালু পাস করুন। ব্যবহারকারী কোন বাটনটি ক্লিক করেছেন তা মূল্যায়ন করতে, alert এর রিটার্ন ভ্যালুটি Ui.Button enum-এর সাথে তুলনা করুন।
function onOpen() {
SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
.createMenu("Custom Menu")
.addItem("Show alert", "showAlert")
.addToUi();
}
function showAlert() {
const ui = SpreadsheetApp.getUi(); // Same variations.
const result = ui.alert(
"Please confirm",
"Are you sure you want to continue?",
ui.ButtonSet.YES_NO,
);
// Process the user's response.
if (result === ui.Button.YES) {
// User clicked "Yes".
ui.alert("Confirmation received.");
} else {
// User clicked "No" or X in the title bar.
ui.alert("Permission denied.");
}
}
প্রম্পট ডায়ালগ

প্রম্পট হলো একটি পূর্ব-নির্মিত ডায়ালগ বক্স যা ডকস, শীটস, স্লাইডস বা ফর্মস এডিটরের ভিতরে খোলে। এটি একটি বার্তা, একটি টেক্সট-ইনপুট ফিল্ড এবং একটি ওকে বাটন প্রদর্শন করে; একটি শিরোনাম এবং বিকল্প বাটনগুলো ঐচ্ছিক। এটি একটি ওয়েব ব্রাউজারের মধ্যে ক্লায়েন্ট-সাইড জাভাস্ক্রিপ্টে window.prompt কল করার অনুরূপ।
ডায়ালগটি খোলা থাকা অবস্থায় প্রম্পটগুলো সার্ভার-সাইড স্ক্রিপ্টকে স্থগিত করে রাখে। ব্যবহারকারী ডায়ালগটি বন্ধ করার পর স্ক্রিপ্টটি আবার চালু হয়, কিন্তু এই স্থগিতাবস্থার সময় JDBC সংযোগগুলো স্থায়ী থাকে না।
নিম্নলিখিত উদাহরণে যেমন দেখানো হয়েছে, Docs, Forms, Slides, এবং Sheets সবগুলোই Ui.prompt মেথডটি ব্যবহার করে, যা তিনটি ভ্যারিয়েন্টে উপলব্ধ। ডিফল্ট OK বাটনটি ওভাররাইড করতে, buttons আর্গুমেন্ট হিসেবে Ui.ButtonSet enum থেকে একটি ভ্যালু পাস করুন। ব্যবহারকারীর প্রতিক্রিয়া মূল্যায়ন করতে, prompt এর রিটার্ন ভ্যালুটি ক্যাপচার করুন, তারপর ব্যবহারকারীর ইনপুট পুনরুদ্ধার করতে PromptResponse.getResponseText কল করুন, এবং PromptResponse.getSelectedButton এর রিটার্ন ভ্যালুটি Ui.Button enum-এর সাথে তুলনা করুন।
function onOpen() {
SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
.createMenu("Custom Menu")
.addItem("Show prompt", "showPrompt")
.addToUi();
}
function showPrompt() {
const ui = SpreadsheetApp.getUi(); // Same variations.
const result = ui.prompt(
"Let's get to know each other!",
"Please enter your name:",
ui.ButtonSet.OK_CANCEL,
);
// Process the user's response.
const button = result.getSelectedButton();
const text = result.getResponseText();
if (button === ui.Button.OK) {
// User clicked "OK".
ui.alert("Your name is " + text + ".");
} else if (button === ui.Button.CANCEL) {
// User clicked "Cancel".
ui.alert("I didn't get your name.");
} else if (button === ui.Button.CLOSE) {
// User clicked X in the title bar.
ui.alert("You closed the dialog.");
}
}
স্প্রেডশিট টোস্ট
"টোস্ট" হলো শীটস এডিটরের নিচের ডান কোণায় থাকা একটি ছোট ডায়ালগ উইন্ডো, যা একটি বার্তা প্রদর্শন করে কিন্তু স্ক্রিপ্টটি স্থগিত করে না। ব্যবহারকারীর হস্তক্ষেপ ছাড়াই স্ট্যাটাস বার্তা বা আপডেট দেখানোর জন্য এটি একটি ভালো উপায়।
নিচের উদাহরণে যেমন দেখানো হয়েছে, শীটস (Sheets) Spreadsheet.toast পদ্ধতিটি ব্যবহার করে। টোস্ট (Toast) শুধুমাত্র শীটস-এই পাওয়া যায়।
function showToast() {
SpreadsheetApp.getActiveSpreadsheet().toast("Task completed successfully.");
}
কাস্টম ডায়ালগ

একটি কাস্টম ডায়ালগ ডকস, শীটস, স্লাইডস বা ফর্মস এডিটরের ভিতরে একটি এইচটিএমএল সার্ভিস ইউজার ইন্টারফেস প্রদর্শন করতে পারে।
কাস্টম ডায়ালগ খোলা থাকা অবস্থায় সার্ভার-সাইড স্ক্রিপ্ট স্থগিত করে না । যেহেতু এগুলো অ্যাসিঙ্ক্রোনাস, তাই যে সার্ভার-সাইড ফাংশনটি ডায়ালগটি খোলে, সেটি সাথে সাথেই শেষ হয়ে যায়। কাস্টম ডায়ালগ থেকে সার্ভারে ডেটা ফেরত পাঠাতে, আপনার ক্লায়েন্ট-সাইড কোডে google.script API ব্যবহার করুন।
একটি HTML-সার্ভিস ইন্টারফেসের ক্লায়েন্ট সাইডে google.script.host.close কল করার মাধ্যমে ডায়ালগটি নিজে থেকেই বন্ধ হতে পারে। অন্য কোনো ইন্টারফেসের মাধ্যমে ডায়ালগটি বন্ধ করা যায় না, কেবল ব্যবহারকারী নিজে অথবা এটি নিজেই বন্ধ করতে পারে।
নিচের উদাহরণে যেমন দেখানো হয়েছে, Docs, Forms, Slides এবং Sheets সবগুলোই ডায়ালগ খোলার জন্য Ui.showModalDialog মেথডটি ব্যবহার করে।
কোড.জিএস
function onOpen() { SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp. .createMenu('Custom Menu') .addItem('Show dialog', 'showDialog') .addToUi(); } function showDialog() { const html = HtmlService.createHtmlOutputFromFile('Page') .setWidth(400) .setHeight(300); SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp. .showModalDialog(html, 'My custom dialog'); }
পৃষ্ঠা.html
Hello, world! <input type="button" value="Close" onclick="google.script.host.close()" />
কাস্টম সাইডবার

একটি সাইডবার ডকস, ফর্মস, স্লাইডস এবং শীটস এডিটরের ভিতরে একটি এইচটিএমএল সার্ভিস ইউজার ইন্টারফেস প্রদর্শন করতে পারে।
ডায়ালগটি খোলা থাকা অবস্থায় সাইডবার সার্ভার-সাইড স্ক্রিপ্টকে স্থগিত করে না । ক্লায়েন্ট-সাইড কম্পোনেন্টটি HTML-সার্ভিস ইন্টারফেসের জন্য google.script API ব্যবহার করে সার্ভার-সাইড স্ক্রিপ্টে অ্যাসিঙ্ক্রোনাস কল করতে পারে।
একটি HTML-সার্ভিস ইন্টারফেসের ক্লায়েন্ট সাইডে google.script.host.close কল করার মাধ্যমে সাইডবারটি নিজে থেকেই বন্ধ হতে পারে। অন্য কোনো ইন্টারফেস দ্বারা সাইডবারটি বন্ধ করা যায় না, কেবল ব্যবহারকারী বা এটি নিজেই তা বন্ধ করতে পারে।
নিচের উদাহরণে যেমন দেখানো হয়েছে, Docs, Forms, Slides এবং Sheets সবগুলোই সাইডবার খোলার জন্য Ui.showSidebar মেথডটি ব্যবহার করে।
কোড.জিএস
function onOpen() { SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp. .createMenu('Custom Menu') .addItem('Show sidebar', 'showSidebar') .addToUi(); } function showSidebar() { const html = HtmlService.createHtmlOutputFromFile('Page') .setTitle('My custom sidebar'); SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp. .showSidebar(html); }
পৃষ্ঠা.html
Hello, world! <input type="button" value="Close" onclick="google.script.host.close()" />
ফাইল খোলার ডায়ালগ
গুগল পিকার একটি জাভাস্ক্রিপ্ট এপিআই যা ব্যবহারকারীদের গুগল ড্রাইভ ফাইল নির্বাচন বা আপলোড করতে দেয়। এইচটিএমএল সার্ভিসে গুগল পিকার লাইব্রেরি ব্যবহার করে একটি কাস্টম ডায়ালগ তৈরি করুন, যা ব্যবহারকারীদের বিদ্যমান ফাইল নির্বাচন করতে বা নতুন ফাইল আপলোড করতে দেবে, এবং তারপর নির্বাচিত ফাইলটি আপনার স্ক্রিপ্টে ফেরত পাঠান।
আবশ্যকতা
গুগল অ্যাপস স্ক্রিপ্টের সাথে গুগল পিকার ব্যবহার করার জন্য কয়েকটি পূর্বশর্ত রয়েছে:
গুগল পিকারের জন্য আপনার পরিবেশ প্রস্তুত করুন ।
আপনার স্ক্রিপ্ট প্রজেক্টে অবশ্যই একটি স্ট্যান্ডার্ড গুগল ক্লাউড প্রজেক্ট ব্যবহার করতে হবে।
drive.fileস্কোপ ব্যবহার করলেPickerBuilder.setAppIdতে একই ক্লাউড প্রজেক্ট নম্বরটি দিন।অ্যাপস স্ক্রিপ্ট প্রজেক্ট ম্যানিফেস্টে অবশ্যই গুগল পিকার এপিআই-এর জন্য প্রয়োজনীয় অথরাইজেশন স্কোপগুলো উল্লেখ করতে হবে, যাতে
PickerBuilder.setOauthtokenএর জন্যScriptApp.getOAuthTokenসঠিক টোকেনটি রিটার্ন করে।PickerBuilder.setDeveloperKeyতে সেট করা API কী-টি Apps Script-এর জন্য সীমাবদ্ধ করুন। Application restrictions- এর অধীনে, এই ধাপগুলি অনুসরণ করুন:- HTTP রেফারার (ওয়েবসাইট) নির্বাচন করুন।
- ওয়েবসাইট বিধিনিষেধের অধীনে, একটি আইটেম যোগ করুন-এ ক্লিক করুন।
- রেফারার-এ ক্লিক করুন এবং
*.google.comলিখুন। - আরেকটি আইটেম যোগ করুন এবং রেফারার হিসেবে
*.googleusercontent.comলিখুন। - সম্পন্ন ক্লিক করুন।
PickerBuilder.setOriginকল করুন।
উদাহরণ
নিম্নলিখিত উদাহরণটিতে অ্যাপস স্ক্রিপ্টে গুগল পিকার দেখানো হয়েছে।