উন্নত Google পরিষেবা

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

উন্নত পরিষেবাগুলি সক্ষম করুন

একটি উন্নত Google পরিষেবা ব্যবহার করতে, এই নির্দেশাবলী অনুসরণ করুন:

ধাপ ১: উন্নত পরিষেবা সক্ষম করুন

আপনি অ্যাপস স্ক্রিপ্ট এডিটর ব্যবহার করে অথবা ম্যানিফেস্ট সম্পাদনা করে একটি উন্নত পরিষেবা সক্ষম করতে পারেন।

পদ্ধতি A: সম্পাদক ব্যবহার করা

  1. অ্যাপস স্ক্রিপ্ট প্রজেক্টটি খুলুন।
  2. বাম দিকে, এডিটর ক্লিক করুন।
  3. বাম দিকে, Services এর পাশে, Add a service ক্লিক করুন।
  4. একটি উন্নত গুগল পরিষেবা নির্বাচন করুন এবং যোগ করুন ক্লিক করুন।

পদ্ধতি B: ম্যানিফেস্ট ব্যবহার করা

আপনি ম্যানিফেস্ট ফাইল সম্পাদনা করে উন্নত পরিষেবাগুলি সক্ষম করতে পারেন। উদাহরণস্বরূপ, Google ড্রাইভ উন্নত পরিষেবা সক্ষম করতে, dependencies অবজেক্টে enabledAdvancedServices ক্ষেত্রটি যুক্ত করুন:

{
  "timeZone": "America/Denver",
  "dependencies": {
    "enabledAdvancedServices": [
      {
        "userSymbol": "Drive",
        "version": "v3",
        "serviceId": "drive"
      }
    ]
  },
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8"
}

একটি উন্নত পরিষেবা সক্ষম করার পরে, এটি স্বয়ংক্রিয়ভাবে উপলব্ধ হবে।

ধাপ ২: গুগল ক্লাউড এপিআই সক্ষম করুন (শুধুমাত্র স্ট্যান্ডার্ড গুগল ক্লাউড প্রকল্প প্রকল্প)

যদি আপনি একটি ডিফল্ট Google ক্লাউড প্রকল্প ব্যবহার করেন (অ্যাপস স্ক্রিপ্ট দ্বারা স্বয়ংক্রিয়ভাবে তৈরি), তাহলে আপনি এই পদক্ষেপটি এড়িয়ে যেতে পারেন। ধাপ ১-এ পরিষেবাটি যোগ করার সময় API স্বয়ংক্রিয়ভাবে সক্ষম হয়ে যায়।

যদি আপনি একটি স্ট্যান্ডার্ড গুগল ক্লাউড প্রজেক্ট ব্যবহার করেন, তাহলে আপনাকে উন্নত পরিষেবার সাথে সম্পর্কিত API ম্যানুয়ালি সক্ষম করতে হবে। API ম্যানুয়ালি সক্ষম করতে:

  1. ** গুগল ক্লাউড কনসোল**- এ আপনার স্ক্রিপ্টের সাথে সম্পর্কিত ক্লাউড প্রজেক্টটি খুলুন।

  2. কনসোলের উপরের দিকে, অনুসন্ধান বারে ক্লিক করুন এবং API এর নামের কিছু অংশ টাইপ করুন (উদাহরণস্বরূপ, "ক্যালেন্ডার"), তারপর নামটি দেখা মাত্রই ক্লিক করুন।

  3. Enable API-এ ক্লিক করুন।

  4. গুগল ক্লাউড কনসোলটি বন্ধ করুন এবং স্ক্রিপ্ট এডিটরে ফিরে যান।

পদ্ধতি স্বাক্ষর কীভাবে নির্ধারণ করা হয়

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

গুগল এপিআই-তে অনুরোধগুলি বিভিন্ন ধরণের ডেটা গ্রহণ করতে পারে, যার মধ্যে রয়েছে পাথ প্যারামিটার, কোয়েরি প্যারামিটার, একটি অনুরোধের বডি, অথবা একটি মিডিয়া আপলোড সংযুক্তি। কিছু উন্নত পরিষেবা নির্দিষ্ট HTTP অনুরোধ শিরোনামও গ্রহণ করতে পারে (উদাহরণস্বরূপ, ক্যালেন্ডার উন্নত পরিষেবা )।

গুগল অ্যাপস স্ক্রিপ্টে সংশ্লিষ্ট পদ্ধতি স্বাক্ষরের নিম্নলিখিত যুক্তি রয়েছে:

  1. অনুরোধের বডি (সাধারণত একটি রিসোর্স), একটি জাভাস্ক্রিপ্ট অবজেক্ট হিসেবে।
  2. পাথ বা প্রয়োজনীয় প্যারামিটার, পৃথক আর্গুমেন্ট হিসেবে। যদি পদ্ধতিতে একাধিক পাথ প্যারামিটারের প্রয়োজন হয়, তাহলে সেগুলি API এন্ডপয়েন্ট URL-এ তালিকাভুক্ত ক্রমে প্রদর্শিত হবে।
  3. মিডিয়া আপলোড সংযুক্তি, একটি Blob যুক্তি হিসাবে।
  4. ঐচ্ছিক প্যারামিটার (সাধারণত কোয়েরি প্যারামিটার), একটি জাভাস্ক্রিপ্ট অবজেক্ট হিসেবে প্যারামিটারের নামগুলিকে মানগুলিতে ম্যাপ করে।
  5. HTTP অনুরোধ হেডার, একটি জাভাস্ক্রিপ্ট অবজেক্ট হিসেবে হেডারের নাম হেডারের মানগুলিতে ম্যাপ করে।

যদি পদ্ধতিতে নির্দিষ্ট বিভাগে কোনও আইটেম না থাকে, তাহলে স্বাক্ষরের সেই অংশটি বাদ দেওয়া হয়।

কিছু বিশেষ ব্যতিক্রম সম্পর্কে সচেতন থাকা উচিত:

  • যেসব পদ্ধতিতে মিডিয়া আপলোড গ্রহণ করা হয়, তাদের জন্য uploadType প্যারামিটার স্বয়ংক্রিয়ভাবে সেট করা হয়।
  • গুগল এপিআই-তে delete নামক পদ্ধতিগুলিকে অ্যাপস স্ক্রিপ্টে remove বলা হয়, কারণ delete জাভাস্ক্রিপ্টে একটি সংরক্ষিত শব্দ।
  • যদি কোনও উন্নত পরিষেবা HTTP অনুরোধ শিরোনাম গ্রহণ করার জন্য কনফিগার করা থাকে এবং আপনি একটি অনুরোধ শিরোনাম জাভাস্ক্রিপ্ট অবজেক্ট সেট করেন, তাহলে আপনাকে ঐচ্ছিক প্যারামিটার জাভাস্ক্রিপ্ট অবজেক্টও সেট করতে হবে (যদি আপনি ঐচ্ছিক প্যারামিটার ব্যবহার না করেন তবে একটি খালি বস্তুতে)।

উদাহরণ: Calendar.Events.insert

ধরুন আপনি একটি ক্যালেন্ডার ইভেন্ট তৈরি করতে চান। গুগল ক্যালেন্ডার এপিআই ডকুমেন্টেশন সংশ্লিষ্ট HTTP অনুরোধ কাঠামো দেখায়:

  • HTTP ক্রিয়া : POST
  • অনুরোধের URL : https://www.googleapis.com/calendar/v3/calendars/{calendarId}/events
  • অনুরোধের মূল অংশ : একটি ইভেন্ট রিসোর্স

  • কোয়েরি প্যারামিটার : sendUpdates , supportsAttachments , ইত্যাদি।

অ্যাপস স্ক্রিপ্টে, পদ্ধতি স্বাক্ষর এই ইনপুটগুলিকে পুনর্বিন্যাস করে নির্ধারিত হয়:

  1. মূল অংশ : ইভেন্ট রিসোর্স (জাভাস্ক্রিপ্ট অবজেক্ট)।
  2. পথ : calendarId (স্ট্রিং)।
  3. ঐচ্ছিক প্যারামিটার : কোয়েরি প্যারামিটার (জাভাস্ক্রিপ্ট অবজেক্ট)।

ফলস্বরূপ পদ্ধতি কলটি এইরকম দেখাচ্ছে:

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?

প্রতিটি উন্নত গুগল পরিষেবা একটি পাবলিক গুগল এপিআই-এর সাথে যুক্ত। অ্যাপস স্ক্রিপ্টে, আপনি উন্নত পরিষেবা ব্যবহার করে অথবা সরাসরি UrlFetch ব্যবহার করে 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);

আমরা যখনই সম্ভব একটি উন্নত পরিষেবা ব্যবহার করার পরামর্শ দিচ্ছি এবং শুধুমাত্র তখনই UrlFetch পদ্ধতি ব্যবহার করুন যখন উন্নত পরিষেবাটি উপলব্ধ না থাকে বা আপনার প্রয়োজনীয় কার্যকারিতা প্রদান না করে।

উন্নত পরিষেবার জন্য সহায়তা

যেহেতু উন্নত পরিষেবাগুলি Google API-এর চারপাশে পাতলা মোড়ক, তাই সেগুলি ব্যবহার করার সময় যে কোনও সমস্যার সম্মুখীন হলে তা সাধারণত অন্তর্নিহিত API-এর সমস্যা হয়, অ্যাপস স্ক্রিপ্টের নয়।

যদি আপনি কোন উন্নত পরিষেবা ব্যবহার করার সময় কোন সমস্যার সম্মুখীন হন, তাহলে অন্তর্নিহিত API-এর জন্য সহায়তা নির্দেশাবলী ব্যবহার করে এটি রিপোর্ট করা উচিত।