অন্তর্নির্মিত Google পরিষেবা

গুগল অ্যাপস স্ক্রিপ্ট ব্যবহারকারীর ডেটা, অন্যান্য গুগল সিস্টেম এবং বহিরাগত সিস্টেমের সাথে ইন্টারঅ্যাক্ট করার জন্য ৩০টিরও বেশি বিল্ট-ইন পরিষেবা প্রদান করে। এই পরিষেবাগুলি জাভাস্ক্রিপ্টের স্ট্যান্ডার্ড Math অবজেক্টের মতো গ্লোবাল অবজেক্ট হিসাবে সরবরাহ করা হয়। উদাহরণস্বরূপ, যেমন Math random() এবং PI এর মতো ধ্রুবক অফার করে, অ্যাপস স্ক্রিপ্টের স্প্রেডশিট পরিষেবা openById(id) , ক্লাস (চাইল্ড অবজেক্ট) যেমন Range এবং enums যেমন DataValidationCriteria মতো পদ্ধতি অফার করে।

Google Workspace পণ্য নিয়ন্ত্রণকারী পরিষেবাগুলির রেফারেন্স ডকুমেন্টেশনগুলি এই সাইটের সাইডবারে "রেফারেন্স" শিরোনামের অধীনে "Google Workspace পরিষেবা" বিভাগে সংগ্রহ করা হয়। ইউটিলিটি পরিষেবাগুলি (ব্যবহারকারী ইন্টারফেস তৈরি করা, XML পার্স করা বা লগ ডেটা লেখার মতো জিনিসগুলির জন্য) "স্ক্রিপ্ট পরিষেবা" বিভাগে সংগ্রহ করা হয়।

আধুনিক জাভাস্ক্রিপ্ট বৈশিষ্ট্য

অ্যাপস স্ক্রিপ্ট দুটি জাভাস্ক্রিপ্ট রানটাইম সমর্থন করে: আধুনিক V8 রানটাইম এবং মজিলার রাইনো জাভাস্ক্রিপ্ট ইন্টারপ্রেটার দ্বারা চালিত একটি পুরানো রানটাইম।

V8 রানটাইম আধুনিক ECMAScript সিনট্যাক্স এবং বৈশিষ্ট্যগুলিকে সমর্থন করে। Rhino রানটাইমটি পুরানো JavaScript 1.6 স্ট্যান্ডার্ডের উপর ভিত্তি করে তৈরি, এবং 1.7 এবং 1.8 এর কিছু বৈশিষ্ট্যও রয়েছে। আপনার স্ক্রিপ্টের সাথে কোন রানটাইম ব্যবহার করবেন তা বেছে নিন , তবে V8 রানটাইমটি দৃঢ়ভাবে সুপারিশ করা হয়।

প্রতিটি রানটাইম আপনার স্ক্রিপ্টে উপলব্ধ জাভাস্ক্রিপ্ট ক্লাস এবং অবজেক্টগুলিকে সমর্থন করে, বিল্ট-ইন এবং উন্নত গুগল পরিষেবাগুলি ছাড়াও। আপনার স্ক্রিপ্টগুলি Array , Date , RegExp ইত্যাদির মতো সাধারণ অবজেক্টগুলির পাশাপাশি Math এবং Object গ্লোবাল অবজেক্টগুলিও ব্যবহার করতে পারে।

যেহেতু অ্যাপস স্ক্রিপ্ট কোড গুগলের সার্ভারে চলে ( HTML-পরিষেবা পৃষ্ঠাগুলি বাদে), তাই DOM ম্যানিপুলেশন বা Window API-এর মতো ব্রাউজার-ভিত্তিক জাভাস্ক্রিপ্ট বৈশিষ্ট্যগুলি অ্যাপস স্ক্রিপ্টে উপলব্ধ নয়।

স্বয়ংক্রিয়ভাবে সম্পন্ন করুন

স্ক্রিপ্ট এডিটরটিতে একটি "কন্টেন্ট অ্যাসিস্ট" বৈশিষ্ট্য রয়েছে, যা সাধারণত "অটোকমপ্লিট" নামে পরিচিত, যা স্ক্রিপ্টের বর্তমান প্রেক্ষাপটে বৈধ গ্লোবাল অবজেক্টের পাশাপাশি পদ্ধতি এবং এনামগুলি প্রকাশ করে। যখনই আপনি কোনও গ্লোবাল অবজেক্ট, এনাম বা মেথড কলের পরে একটি পিরিয়ড টাইপ করেন যা একটি অ্যাপস স্ক্রিপ্ট ক্লাস ফেরত দেয় তখন অটোকমপ্লিট পরামর্শগুলি স্বয়ংক্রিয়ভাবে উপস্থিত হয়। উদাহরণস্বরূপ:

  • যদি আপনি একটি গ্লোবাল অবজেক্টের পুরো নাম টাইপ করেন অথবা অটোকম্পলিট থেকে একটি নির্বাচন করেন, তারপর . (a period) টাইপ করুন, তাহলে আপনি সেই ক্লাসের জন্য সমস্ত পদ্ধতি এবং এনাম দেখতে পাবেন।
  • আপনি যদি কয়েকটি অক্ষর টাইপ করেন, তাহলে আপনি সেই অক্ষর দিয়ে শুরু হওয়া সমস্ত বৈধ পরামর্শ দেখতে পাবেন।

গ্লোবাল অবজেক্টস

প্রতিটি পরিষেবা কমপক্ষে একটি গ্লোবাল (শীর্ষ-স্তরের) অবজেক্ট সরবরাহ করে; উদাহরণস্বরূপ, Gmail পরিষেবাটি কেবলমাত্র GmailApp অবজেক্ট থেকে অ্যাক্সেস করা হয়। কিছু পরিষেবা একাধিক গ্লোবাল অবজেক্ট সরবরাহ করে; উদাহরণস্বরূপ, বেস পরিষেবাটিতে চারটি গ্লোবাল অবজেক্ট রয়েছে: Browser , Logger , MimeType এবং Session

পদ্ধতি

প্রায় সকল বিল্ট-ইন বা অ্যাডভান্সড সার্ভিসের গ্লোবাল অবজেক্টের মধ্যে থাকে এমন পদ্ধতি যা ডেটা বা অ্যাপস স্ক্রিপ্ট ক্লাস ফেরত দেয়। স্ক্রিপ্টগুলি এই ফর্ম্যাটে পদ্ধতি কল করে:

GlobalObjectName.methodName(argument1, argument2, ..., argumentN);

উদাহরণস্বরূপ, একটি স্ক্রিপ্ট Gmail পরিষেবার sendEmail(recipient, subject, body) পদ্ধতিতে কল করে একটি ইমেল পাঠাতে পারে যেমন:

GmailApp.sendEmail('claire@example.com', 'Subject line', 'This is the body.');

যদি একটি পদ্ধতি অন্য একটি অ্যাপস স্ক্রিপ্ট ক্লাস ফেরত দেয়, তাহলে চেইন পদ্ধতি একটি লাইনে কল করে। (রিটার্নের ধরণগুলি স্বয়ংক্রিয়ভাবে সম্পূর্ণ এবং একটি পদ্ধতির রেফারেন্স ডকুমেন্টেশন উভয় ক্ষেত্রেই দেখানো হয়।) উদাহরণস্বরূপ, DocumentApp.create() পদ্ধতিটি একটি Document ফেরত দেয়; সুতরাং, কোডের নিম্নলিখিত দুটি বিভাগ সমতুল্য:

var doc = DocumentApp.create('New document');
var body = doc.getTab('t.0').asDocumentTab().getBody();
body.appendParagraph('New paragraph.');

// Same result as above.
DocumentApp.create('New document').getTab('t.0').asDocumentTab().getBody()
    .appendParagraph('New paragraph.');

শিশু ক্লাস

প্রতিটি পরিষেবাতেই এক বা একাধিক চাইল্ড ক্লাস থাকে যা আপনি টপ লেভেল থেকে গ্লোবাল অবজেক্ট হিসেবে অ্যাক্সেস করতে পারবেন না। আপনি এই ক্লাসগুলি তৈরি করতে new কীওয়ার্ড ব্যবহার করতে পারবেন না, যেমনটি আপনি Date এর মতো স্ট্যান্ডার্ড জাভাস্ক্রিপ্ট ক্লাসের ক্ষেত্রে করেন। চাইল্ড ক্লাস অ্যাক্সেস করতে, আপনাকে এমন একটি পদ্ধতি কল করতে হবে যা এটি ফেরত দেয়। যদি আপনি নিশ্চিত না হন যে কীভাবে একটি নির্দিষ্ট ক্লাস অ্যাক্সেস করবেন, তাহলে পরিষেবার রেফারেন্স ডকুমেন্টেশনের জন্য রুট পৃষ্ঠাটি দেখুন—এটি পরিষেবার জন্য ক্লাস এবং সেগুলি ফেরত দেওয়ার পদ্ধতিগুলি তালিকাভুক্ত করে।

ইন্টারফেস

কিছু পরিষেবার রেফারেন্স ডকুমেন্টেশনে "ইন্টারফেস" হিসেবে লেবেল করা ক্লাস অন্তর্ভুক্ত থাকে। এগুলি জেনেরিক ক্লাস যা রিটার্ন টাইপ হিসেবে ব্যবহৃত হয় এমন পদ্ধতিগুলির জন্য যা আগে থেকে সুনির্দিষ্ট টাইপ নির্ধারণ করতে পারে না। উদাহরণস্বরূপ, ডকুমেন্ট সার্ভিস পদ্ধতি Body.getChild(childIndex) একটি জেনেরিক Element অবজেক্ট ফেরত দেয়। Element ইন্টারফেস অন্য কোনও ক্লাসের প্রতিনিধিত্ব করে, সম্ভবত একটি Paragraph বা Table । ইন্টারফেস অবজেক্টগুলি খুব কমই নিজেরাই কার্যকর হয়; পরিবর্তে, Element.asParagraph() এর মতো একটি পদ্ধতি কল করুন যাতে অবজেক্টটিকে একটি নির্দিষ্ট ক্লাসে ফিরিয়ে আনা যায়।

এনামস

বেশিরভাগ পরিষেবাতেই নামযুক্ত মানগুলির enums (গণিত প্রকার) অন্তর্ভুক্ত থাকে। উদাহরণস্বরূপ, Google ড্রাইভ পরিষেবা কোন ব্যবহারকারীদের একটি ফাইল বা ফোল্ডারে অ্যাক্সেস আছে তা নির্ধারণ করতে enums Access এবং Permission ব্যবহার করে। বেশিরভাগ ক্ষেত্রে, আপনি গ্লোবাল অবজেক্ট থেকে এই enums অ্যাক্সেস করেন, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:

// Creates a folder that anyone on the Internet can read from and write to.
// (Domain administrators can prohibit this setting for Google Workspace users.)
var folder = DriveApp.createFolder('Shared Folder');
folder.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT);