গুগল অ্যাপস স্ক্রিপ্টের উন্নত পরিষেবাগুলি আপনাকে HTTP ইন্টারফেস ব্যবহারের চেয়ে কম সেটআপের মাধ্যমে নির্দিষ্ট পাবলিক গুগল এপিআইগুলির সাথে সংযোগ করতে দেয়। উন্নত পরিষেবাগুলি সেই গুগল এপিআইগুলির চারপাশে পাতলা মোড়ক। এগুলি অ্যাপস স্ক্রিপ্টের অন্তর্নির্মিত পরিষেবাগুলির মতো কাজ করে — উদাহরণস্বরূপ, তারা স্বয়ংক্রিয়ভাবে সম্পূর্ণ করার প্রস্তাব দেয় এবং অ্যাপস স্ক্রিপ্ট স্বয়ংক্রিয়ভাবে অনুমোদন প্রবাহ পরিচালনা করে। স্ক্রিপ্টে ব্যবহারের আগে একটি উন্নত পরিষেবা সক্ষম করুন।
উন্নত পরিষেবাগুলি সক্ষম করুন
একটি উন্নত Google পরিষেবা ব্যবহার করতে, এই নির্দেশাবলী অনুসরণ করুন:
ধাপ ১: উন্নত পরিষেবা সক্ষম করুন
অ্যাপস স্ক্রিপ্ট এডিটর ব্যবহার করে অথবা ম্যানিফেস্ট সম্পাদনা করে একটি উন্নত পরিষেবা সক্ষম করুন।
পদ্ধতি A: সম্পাদক ব্যবহার করা
- অ্যাপস স্ক্রিপ্ট প্রজেক্টটি খুলুন।
- বাম দিকে, এডিটর ক্লিক করুন।
- বাম দিকে, Services এর পাশে, Add a service ক্লিক করুন।
- একটি উন্নত গুগল পরিষেবা নির্বাচন করুন এবং যোগ করুন ক্লিক করুন।
পদ্ধতি B: ম্যানিফেস্ট ব্যবহার করা
ম্যানিফেস্ট ফাইল সম্পাদনা করে উন্নত পরিষেবাগুলি সক্ষম করুন। উদাহরণস্বরূপ, Google ড্রাইভ উন্নত পরিষেবা সক্ষম করতে, dependencies বস্তুতে enabledAdvancedServices ক্ষেত্রটি যুক্ত করুন:
{
"timeZone": "America/Denver",
"dependencies": {
"enabledAdvancedServices": [
{
"userSymbol": "Drive",
"version": "v3",
"serviceId": "drive"
}
]
},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8"
}
একটি উন্নত পরিষেবা সক্ষম করার পরে, এটি স্বয়ংক্রিয়ভাবে উপলব্ধ হবে।
ধাপ ২: গুগল ক্লাউড এপিআই সক্ষম করুন (শুধুমাত্র স্ট্যান্ডার্ড গুগল ক্লাউড প্রকল্প প্রকল্প)
যদি আপনি একটি ডিফল্ট Google ক্লাউড প্রকল্প ব্যবহার করেন (অ্যাপস স্ক্রিপ্ট দ্বারা স্বয়ংক্রিয়ভাবে তৈরি), তাহলে এই পদক্ষেপটি এড়িয়ে যান। ধাপ ১-এ পরিষেবাটি যোগ করার সময় API স্বয়ংক্রিয়ভাবে সক্ষম হয়ে যায়।
যদি আপনি একটি স্ট্যান্ডার্ড গুগল ক্লাউড প্রজেক্ট ব্যবহার করেন, তাহলে উন্নত পরিষেবার সাথে সম্পর্কিত API ম্যানুয়ালি সক্ষম করুন। API ম্যানুয়ালি সক্ষম করতে:
** গুগল ক্লাউড কনসোল**- এ আপনার স্ক্রিপ্টের সাথে সম্পর্কিত ক্লাউড প্রজেক্টটি খুলুন।
কনসোলের উপরের দিকে, অনুসন্ধান বারে ক্লিক করুন এবং API এর নামের কিছু অংশ টাইপ করুন (উদাহরণস্বরূপ, "ক্যালেন্ডার"), তারপর নামটি দেখা মাত্রই ক্লিক করুন।
Enable API-এ ক্লিক করুন।
গুগল ক্লাউড কনসোলটি বন্ধ করুন এবং স্ক্রিপ্ট এডিটরে ফিরে যান।
পদ্ধতি স্বাক্ষর কীভাবে নির্ধারণ করা হয়
উন্নত পরিষেবাগুলি সাধারণত সংশ্লিষ্ট পাবলিক API-এর মতো একই বস্তু, পদ্ধতির নাম এবং প্যারামিটার ব্যবহার করে, যদিও অ্যাপস স্ক্রিপ্টে ব্যবহারের জন্য পদ্ধতি স্বাক্ষর অনুবাদ করা হয়। স্ক্রিপ্ট সম্পাদক স্বয়ংসম্পূর্ণ ফাংশন সাধারণত শুরু করার জন্য যথেষ্ট তথ্য সরবরাহ করে। নিম্নলিখিত নিয়মগুলি ব্যাখ্যা করে যে অ্যাপস স্ক্রিপ্ট কীভাবে একটি পাবলিক গুগল API থেকে একটি পদ্ধতি স্বাক্ষর তৈরি করে।
গুগল এপিআই-তে অনুরোধগুলি বিভিন্ন ধরণের ডেটা গ্রহণ করতে পারে, যার মধ্যে রয়েছে পাথ প্যারামিটার, কোয়েরি প্যারামিটার, একটি অনুরোধের বডি, অথবা একটি মিডিয়া আপলোড সংযুক্তি। কিছু উন্নত পরিষেবা নির্দিষ্ট HTTP অনুরোধ শিরোনামও গ্রহণ করতে পারে (উদাহরণস্বরূপ, ক্যালেন্ডার উন্নত পরিষেবা )।
অ্যাপস স্ক্রিপ্টে সংশ্লিষ্ট পদ্ধতি স্বাক্ষরের নিম্নলিখিত যুক্তি রয়েছে:
- অনুরোধের বডি (সাধারণত একটি রিসোর্স), একটি জাভাস্ক্রিপ্ট অবজেক্ট হিসেবে।
- পাথ বা প্রয়োজনীয় প্যারামিটার, পৃথক আর্গুমেন্ট হিসেবে। যদি পদ্ধতিতে একাধিক পাথ প্যারামিটারের প্রয়োজন হয়, তাহলে সেগুলি API এন্ডপয়েন্ট URL-এ তালিকাভুক্ত ক্রমে প্রদর্শিত হবে।
- মিডিয়া আপলোড সংযুক্তি, একটি
Blobযুক্তি হিসাবে। - ঐচ্ছিক প্যারামিটার (সাধারণত কোয়েরি প্যারামিটার), একটি জাভাস্ক্রিপ্ট অবজেক্ট হিসেবে প্যারামিটারের নামগুলিকে মানগুলিতে ম্যাপ করে।
- HTTP অনুরোধ হেডার, একটি জাভাস্ক্রিপ্ট অবজেক্ট হিসেবে হেডারের নাম হেডারের মানগুলিতে ম্যাপ করে।
যদি পদ্ধতিতে নির্দিষ্ট বিভাগে কোনও আইটেম না থাকে, তাহলে স্বাক্ষরের সেই অংশটি বাদ দেওয়া হয়।
এই ব্যতিক্রমগুলি সম্পর্কে সচেতন থাকুন:
- যেসব পদ্ধতিতে মিডিয়া আপলোড গ্রহণ করা হয়, তাদের জন্য
uploadTypeপ্যারামিটার স্বয়ংক্রিয়ভাবে সেট করা হয়। - গুগল এপিআই-তে
deleteনামক পদ্ধতিগুলিকে অ্যাপস স্ক্রিপ্টেremoveবলা হয়, কারণdeleteজাভাস্ক্রিপ্টে একটি সংরক্ষিত শব্দ। - যদি কোনও উন্নত পরিষেবা HTTP অনুরোধ শিরোনাম গ্রহণ করার জন্য কনফিগার করা থাকে এবং আপনি একটি অনুরোধ শিরোনাম জাভাস্ক্রিপ্ট অবজেক্ট সেট করেন, তাহলে আপনাকে ঐচ্ছিক প্যারামিটার জাভাস্ক্রিপ্ট অবজেক্টও সেট করতে হবে (যদি আপনি ঐচ্ছিক প্যারামিটার ব্যবহার না করেন তবে একটি খালি বস্তুতে)।
উদাহরণ: Calendar.Events.insert
একটি ক্যালেন্ডার ইভেন্ট তৈরি করতে:
গুগল ক্যালেন্ডার এপিআই ডকুমেন্টেশন সংশ্লিষ্ট HTTP অনুরোধ কাঠামো দেখায়:
- HTTP ক্রিয়া :
POST - অনুরোধের URL :
https://www.googleapis.com/calendar/v3/calendars/{calendarId}/events অনুরোধের মূল অংশ : একটি ইভেন্ট রিসোর্স ।
কোয়েরি প্যারামিটার :
sendUpdates,supportsAttachments, ইত্যাদি।
অ্যাপস স্ক্রিপ্টে, পদ্ধতি স্বাক্ষর এই ইনপুটগুলিকে পুনর্বিন্যাস করে নির্ধারিত হয়:
- মূল অংশ : ইভেন্ট রিসোর্স (জাভাস্ক্রিপ্ট অবজেক্ট)।
- পথ :
calendarId(স্ট্রিং)। - ঐচ্ছিক প্যারামিটার : কোয়েরি প্যারামিটার (জাভাস্ক্রিপ্ট অবজেক্ট)।
ফলস্বরূপ পদ্ধতি কলটি এইরকম দেখাচ্ছে:
const event = {
summary: 'Lunch',
location: 'Deli',
start: {
dateTime: '2026-01-01T12:00:00-05:00'
},
end: {
dateTime: '2026-01-01T13:00:00-05:00'
}
};
const calendarId = 'primary';
const optionalArgs = {
sendUpdates: 'all'
};
Calendar.Events.insert(event, calendarId, optionalArgs);
উন্নত পরিষেবা নাকি HTTP?
প্রতিটি উন্নত Google পরিষেবা একটি পাবলিক Google API-এর সাথে যুক্ত। Apps Script-এ, উন্নত পরিষেবা ব্যবহার করে অথবা UrlFetch ব্যবহার করে সরাসরি API অনুরোধ করে এই API গুলি অ্যাক্সেস করুন।
আপনি যদি উন্নত পরিষেবা পদ্ধতি ব্যবহার করেন , তাহলে অ্যাপস স্ক্রিপ্ট অনুমোদন প্রবাহ পরিচালনা করে এবং স্বয়ংক্রিয়ভাবে সম্পূর্ণ সহায়তা প্রদান করে। উন্নত পরিষেবাটি ব্যবহার করার আগে এটি সক্ষম করুন।
যদি আপনি সরাসরি API অ্যাক্সেস করার জন্য UrlFetch পদ্ধতি ব্যবহার করেন , তাহলে আপনি মূলত Google API কে একটি বহিরাগত API হিসেবে বিবেচনা করবেন। এই পদ্ধতিতে, API এর সমস্ত দিক ব্যবহার করুন। তবে, আপনাকে API অনুমোদন পরিচালনা করতে হবে।
নিম্নলিখিত টেবিলটি দুটি পদ্ধতির তুলনা করে:
| বৈশিষ্ট্য | উন্নত পরিষেবা | ইউআরএলফেচ (HTTP) |
|---|---|---|
| অনুমোদন | স্বয়ংক্রিয়ভাবে পরিচালিত | ম্যানুয়াল হ্যান্ডলিং প্রয়োজন |
| স্বয়ংক্রিয়ভাবে সম্পন্ন করুন | উপলব্ধ | পাওয়া যায় না |
| কার্যকারিতার সুযোগ | API-এর একটি উপসেট হতে পারে | সমস্ত API বৈশিষ্ট্যে সম্পূর্ণ অ্যাক্সেস |
| জটিলতা | সহজতর | আরও জটিল (শিরোনাম তৈরি এবং প্রতিক্রিয়া বিশ্লেষণ প্রয়োজন) |
কোড তুলনা
কোড নমুনাগুলি উন্নত পরিষেবা ব্যবহার করে একটি ক্যালেন্ডার ইভেন্ট তৈরি করা এবং UrlFetchApp ব্যবহারের মধ্যে জটিলতার পার্থক্য দেখায়।
উন্নত পরিষেবা:
const event = {
summary: 'Lunch',
location: 'Deli',
start: { dateTime: '2026-01-01T12:00:00-05:00' },
end: { dateTime: '2026-01-01T13:00:00-05:00' }
};
const optionalArgs = {
sendUpdates: 'all'
};
Calendar.Events.insert(event, 'primary', optionalArgs);
ইউআরএলফেচ (HTTP):
const event = {
summary: 'Lunch',
location: 'Deli',
start: { dateTime: '2026-01-01T12:00:00-05:00' },
end: { dateTime: '2026-01-01T13:00:00-05:00' }
};
const url = 'https://www.googleapis.com/calendar/v3/calendars/primary/events?sendUpdates=all';
const options = {
method: 'post',
contentType: 'application/json',
headers: {
Authorization: `Bearer ${ScriptApp.getOAuthToken()}`
},
payload: JSON.stringify(event)
};
UrlFetchApp.fetch(url, options);
UrlFetchApp পদ্ধতির জন্য, স্ক্রিপ্টের ম্যানিফেস্ট ফাইলে প্রয়োজনীয় OAuth স্কোপগুলি ম্যানুয়ালি নির্দিষ্ট করুন।
যখনই সম্ভব একটি উন্নত পরিষেবা ব্যবহার করুন এবং শুধুমাত্র তখনই UrlFetch পদ্ধতি ব্যবহার করুন যখন উন্নত পরিষেবাটি উপলব্ধ না থাকে বা আপনার প্রয়োজনীয় কার্যকারিতা প্রদান না করে।
উন্নত পরিষেবার জন্য সহায়তা
যেহেতু উন্নত পরিষেবাগুলি Google API-এর চারপাশে পাতলা মোড়ক, তাই সেগুলি ব্যবহার করার সময় যে কোনও সমস্যার সম্মুখীন হলে তা সাধারণত অন্তর্নিহিত API-এর সমস্যা হয়, অ্যাপস স্ক্রিপ্টের নয়।
যদি আপনি কোন উন্নত পরিষেবা ব্যবহার করার সময় কোন সমস্যার সম্মুখীন হন, তাহলে অন্তর্নিহিত API-এর জন্য সহায়তা নির্দেশাবলী ব্যবহার করে এটি রিপোর্ট করুন।