গুগল এডিটর ইন্টারফেস তৈরি করুন

গুগল ওয়ার্কস্পেস অ্যাড-অনগুলির সাহায্যে, আপনি গুগল ডক্স, গুগল শিটস এবং গুগল স্লাইডস সহ এডিটরগুলির মধ্যে কাস্টমাইজড ইন্টারফেস প্রদান করতে পারেন। এর মাধ্যমে আপনি ব্যবহারকারীকে প্রাসঙ্গিক তথ্য সরবরাহ করতে, কাজগুলি স্বয়ংক্রিয় করতে এবং এডিটরগুলির সাথে থার্ড-পার্টি সিস্টেম সংযুক্ত করতে পারেন।

অ্যাড-অন UI অ্যাক্সেস করুন

Docs, Sheets, এবং Slides ইউজার ইন্টারফেসের Google Workspace কুইক অ্যাক্সেস সাইড প্যানেলে Google Workspace অ্যাড-অনটির আইকন দেখা গেলে, আপনি এডিটরগুলিতে এটি খুলতে পারবেন।

একটি গুগল ওয়ার্কস্পেস অ্যাড-অন নিম্নলিখিত ইন্টারফেসগুলো প্রদর্শন করতে পারে:

  • হোমপেজ ইন্টারফেস : যদি অ্যাড-অনটির ম্যানিফেস্টে ব্যবহারকারী যে এডিটরে অ্যাড-অনটি খোলেন তার জন্য EDITOR_NAME .homepageTrigger ট্রিগারটি অন্তর্ভুক্ত থাকে, তাহলে অ্যাড-অনটি বিশেষভাবে সেই এডিটরের জন্য একটি হোমপেজ কার্ড তৈরি করে এবং ফেরত দেয়। যদি অ্যাড-অনটির ম্যানিফেস্টে ব্যবহারকারী যে এডিটরে এটি খোলেন তার জন্য EDITOR_NAME .homepageTrigger অন্তর্ভুক্ত না থাকে, তাহলে তার পরিবর্তে একটি জেনেরিক হোমপেজ কার্ড প্রদর্শিত হয়।

  • REST API ইন্টারফেস : যদি অ্যাড-অনটি REST API ব্যবহার করে, তাহলে আপনি drive.file স্কোপ ব্যবহার করে কোনো ডকুমেন্টে ফাইল-ভিত্তিক অ্যাক্সেসের অনুরোধ করার জন্য ট্রিগার অন্তর্ভুক্ত করতে পারেন। অনুমতি দেওয়া হলে, EDITOR_NAME .onFileScopeGrantedTrigger নামক আরেকটি ট্রিগার চালু হয় এবং ফাইলটির জন্য নির্দিষ্ট একটি ইন্টারফেস প্রদর্শন করে।

  • লিঙ্ক প্রিভিউ ইন্টারফেস : যদি আপনার অ্যাড-অন কোনো থার্ড-পার্টি পরিষেবার সাথে ইন্টিগ্রেট করে, তাহলে আপনি এমন কার্ড তৈরি করতে পারেন যা আপনার পরিষেবার URL-গুলো থেকে কন্টেন্টের প্রিভিউ দেখাবে।

এডিটর অ্যাড-অনগুলির জন্য ইন্টারফেস তৈরি করুন

এই ধাপগুলো অনুসরণ করে এডিটরদের জন্য এডিটর অ্যাড-অন ইন্টারফেস তৈরি করুন:

  1. অ্যাড-অন স্ক্রিপ্ট প্রজেক্ট ম্যানিফেস্টে উপযুক্ত addOns.common , addOns.docs , addOns.sheets , এবং addOns.slides ফিল্ডগুলো যোগ করুন।
  2. আপনার স্ক্রিপ্ট প্রজেক্ট ম্যানিফেস্টে প্রয়োজনীয় এডিটর স্কোপগুলো যোগ করুন।
  3. আপনি যদি সম্পাদক-নির্দিষ্ট হোমপেজ প্রদান করেন, তাহলে ইন্টারফেসটি তৈরি করতে EDITOR_NAME .homepageTrigger ফাংশনটি প্রয়োগ করুন। অন্যথায়, আপনার হোস্ট অ্যাপগুলোর জন্য একটি সাধারণ হোমপেজ তৈরি করতে common.homepageTrigger ইন্টারফেসটি ব্যবহার করুন।
  4. আপনি যদি REST API ব্যবহার করেন, তাহলে খোলা ফাইলটির জন্য নির্দিষ্ট একটি ইন্টারফেস প্রদর্শন করতে drive.file স্কোপ অথরাইজেশন ফ্লো এবং EDITOR_NAME .onFileScopeGrantedTrigger ট্রিগার ফাংশনটি ইমপ্লিমেন্ট করুন। আরও তথ্যের জন্য, REST API ইন্টারফেসসমূহ দেখুন।
  5. আপনি যদি কোনো থার্ড-পার্টি পরিষেবা থেকে লিঙ্ক প্রিভিউ কনফিগার করেন, তাহলে https://www.googleapis.com/auth/workspace.linkpreview স্কোপের অথরাইজেশন ফ্লো এবং linkPreviewTriggers ফাংশনটি ইমপ্লিমেন্ট করুন। আরও তথ্যের জন্য, লিঙ্ক প্রিভিউ ইন্টারফেস দেখুন।
  6. ব্যবহারকারীর UI ইন্টারঅ্যাকশন, যেমন বাটনে ক্লিক, এর প্রতিক্রিয়া জানাতে প্রয়োজনীয় সংশ্লিষ্ট কলব্যাক ফাংশনগুলো বাস্তবায়ন করুন।

সম্পাদকের হোমপেজ

আপনার অ্যাড-অনের স্ক্রিপ্ট প্রজেক্টে অবশ্যই একটি হোমপেজ ট্রিগার ফাংশন থাকতে হবে, যা অ্যাড-অনটির হোমপেজ গঠনকারী একটি একক Card অথবা Card অবজেক্টের একটি অ্যারে তৈরি করে ফেরত দেবে।

হোমপেজ ট্রিগার ফাংশনে প্যারামিটার হিসেবে একটি ইভেন্ট অবজেক্ট পাঠানো হয়, যাতে ক্লায়েন্টের প্ল্যাটফর্মের মতো তথ্য থাকে। আপনি এই ইভেন্ট অবজেক্টের ডেটা ব্যবহার করে হোমপেজের গঠনকে নিজের প্রয়োজন অনুযায়ী সাজিয়ে নিতে পারেন।

আপনি একটি সাধারণ হোমপেজ অথবা ব্যবহারকারী যে এডিটরে আপনার অ্যাড-অনটি খোলেন, সেটির জন্য নির্দিষ্ট একটি হোমপেজ প্রদর্শন করতে পারেন।

সাধারণ হোমপেজ প্রদর্শন করুন

এডিটরগুলিতে আপনার অ্যাড-অনের সাধারণ হোমপেজ দেখানোর জন্য, অ্যাড-অনের ম্যানিফেস্টে উপযুক্ত এডিটর ফিল্ডগুলি, যেমন addOns.docs , addOns.sheets , বা addOns.slides , অন্তর্ভুক্ত করুন।

নিম্নলিখিত উদাহরণটি একটি গুগল ওয়ার্কস্পেস অ্যাড-অন ম্যানিফেস্টের addons অংশটি দেখাচ্ছে। অ্যাড-অনটি ডকস, শীটস এবং স্লাইডস-কে সম্প্রসারিত করে এবং প্রতিটি হোস্ট অ্যাপে সাধারণ হোমপেজটি প্রদর্শন করে।

{
 "addOns": {
    "common": {
      "name": "Translate",
      "logoUrl": "https://www.gstatic.com/images/branding/product/1x/translate_24dp.png",
      "layoutProperties": {
        "primaryColor": "#2772ed"
      },
      "homepageTrigger": {
        "runFunction": "onHomepage"
      }
    },
    "docs": {},
    "sheets": {},
    "slides": {}
  }
}

সম্পাদক-নির্দিষ্ট হোমপেজ প্রদর্শন করুন

কোনো সম্পাদকের জন্য নির্দিষ্ট হোমপেজ উপস্থাপন করতে, অ্যাড-অন ম্যানিফেস্টে EDITOR_NAME .homepageTrigger যোগ করুন।

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

 "addOns": {
    "common": {
      "name": "Translate",
      "logoUrl": "https://www.gstatic.com/images/branding/product/1x/translate_24dp.png",
      "layoutProperties": {
        "primaryColor": "#2772ed"
      },
      "homepageTrigger": {
        "runFunction": "onHomepage"
      }
    },
    "docs": {},
    "slides": {},
    "sheets": {
     "homepageTrigger": {
       "runFunction": "onSheetsHomepage"
     },
  }
}

REST API ইন্টারফেস

আপনার অ্যাড-অন যদি গুগল শিটস এপিআই-এর মতো REST API ব্যবহার করে, তাহলে এডিটর হোস্ট অ্যাপে খোলা ফাইলটির জন্য নির্দিষ্ট একটি নতুন ইন্টারফেস প্রদর্শন করতে আপনি onFileScopeGrantedTrigger ফাংশনটি ব্যবহার করতে পারেন।

onFileScopeGrantedTrigger ফাংশনটি ব্যবহার করার জন্য আপনাকে অবশ্যই drive.file স্কোপের অনুমোদন প্রবাহ অন্তর্ভুক্ত করতে হবে। drive.file স্কোপের জন্য কীভাবে অনুরোধ করতে হয় তা জানতে, "বর্তমান ডকুমেন্টের জন্য ফাইল অ্যাক্সেসের অনুরোধ" দেখুন।

যখন কোনো ব্যবহারকারী drive.file স্কোপটি মঞ্জুর করেন, তখন EDITOR_NAME .onFileScopeGrantedTrigger.runFunction ট্রিগারটি সক্রিয় হয়। ট্রিগারটি সক্রিয় হলে, এটি অ্যাড-অন ম্যানিফেস্টে থাকা EDITOR_NAME .onFileScopeGrantedTrigger.runFunction ফিল্ড দ্বারা নির্দিষ্ট প্রাসঙ্গিক ট্রিগার ফাংশনটি কার্যকর করে।

এডিটরগুলোর মধ্যে একটির জন্য একটি REST API ইন্টারফেস তৈরি করতে, নিম্নলিখিত ধাপগুলো সম্পন্ন করুন। EDITOR_NAME জায়গায় আপনার পছন্দের এডিটর হোস্ট অ্যাপটির নাম বসান, যেমন, sheets.onFileScopeGrantedTrigger :

  1. আপনার ম্যানিফেস্টের উপযুক্ত এডিটর বিভাগে EDITOR_NAME .onFileScopeGrantedTrigger অন্তর্ভুক্ত করুন। উদাহরণস্বরূপ, আপনি যদি গুগল শিটসে এই ইন্টারফেসটি তৈরি করতে চান, তাহলে ট্রিগারটি "sheets" বিভাগে যুক্ত করুন।
  2. EDITOR_NAME .onFileScopeGrantedTrigger সেকশনে উল্লেখিত ফাংশনটি ইমপ্লিমেন্ট করুন। এই ফাংশনটি আর্গুমেন্ট হিসেবে একটি ইভেন্ট অবজেক্ট গ্রহণ করে এবং অবশ্যই একটি একক Card অবজেক্ট অথবা Card অবজেক্টের একটি অ্যারে রিটার্ন করবে।
  3. যেকোনো কার্ডের মতোই, ইন্টারফেসের জন্য উইজেটের ইন্টারঅ্যাক্টিভিটি প্রদান করতে ব্যবহৃত কলব্যাক ফাংশনগুলো আপনাকে অবশ্যই ইমপ্লিমেন্ট করতে হবে। উদাহরণস্বরূপ, যদি আপনি ইন্টারফেসে একটি বাটন অন্তর্ভুক্ত করেন, তবে এর সাথে একটি অ্যাকশন এবং একটি ইমপ্লিমেন্টেড কলব্যাক ফাংশন থাকা উচিত, যা বাটনটি ক্লিক করা হলে রান করবে।

নিম্নলিখিত উদাহরণটি একটি গুগল ওয়ার্কস্পেস অ্যাড-অন ম্যানিফেস্টের addons অংশটি দেখায়। অ্যাড-অনটি REST API ব্যবহার করে, তাই গুগল শিটসের জন্য onFileScopeGrantedTrigger অন্তর্ভুক্ত করা হয়েছে। যখন কোনো ব্যবহারকারী drive.file স্কোপটি মঞ্জুর করেন, তখন onFileScopeGrantedSheets কলব্যাক ফাংশনটি একটি ফাইল-নির্দিষ্ট ইন্টারফেস তৈরি করে।

{
  "addOns": {
    "common": {
      "name": "Productivity add-on",
      "logoUrl": "https://www.gstatic.com/images/icons/material/system_gm/1x/work_outline_black_18dp.png",
      "layoutProperties": {
        "primaryColor": "#669df6",
        "secondaryColor": "#ee675c"
      }
    },
    "sheets": {
      "homepageTrigger": {
        "runFunction": "onEditorsHomepage"
      },
      "onFileScopeGrantedTrigger": {
        "runFunction": "onFileScopeGrantedSheets"
      }
    }
  }
}

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

লিঙ্ক প্রিভিউ চালু করার ধাপগুলোর জন্য, স্মার্ট চিপ দিয়ে লিঙ্ক প্রিভিউ দেখুন।

ইভেন্ট অবজেক্ট

একটি ইভেন্ট অবজেক্ট তৈরি করে ট্রিগার ফাংশনগুলিতে পাঠানো হয়, যেমন EDITOR_NAME .homepageTrigger বা EDITOR_NAME .onFileScopeGrantedTrigger । ট্রিগার ফাংশনটি ইভেন্ট অবজেক্টের তথ্য ব্যবহার করে অ্যাড-অন কার্ডগুলি কীভাবে তৈরি করতে হবে বা অন্যভাবে অ্যাড-অনের আচরণ নিয়ন্ত্রণ করতে হবে তা নির্ধারণ করে।

ইভেন্ট অবজেক্টের সম্পূর্ণ কাঠামো ইভেন্ট অবজেক্টস (Event objects) অংশে বর্ণনা করা হয়েছে।

যখন কোনো এডিটর অ্যাড-অনটির সক্রিয় হোস্ট অ্যাপ হিসেবে কাজ করে, তখন ইভেন্ট অবজেক্টগুলোতে Docs , Sheets , বা Slides ইভেন্ট অবজেক্ট ফিল্ড অন্তর্ভুক্ত থাকে, যেগুলো ক্লায়েন্টের তথ্য বহন করে।

যদি অ্যাড-অনটির বর্তমান ব্যবহারকারী বা ডকুমেন্টের জন্য drive.file স্কোপ অথরাইজেশন না থাকে, তাহলে ইভেন্ট অবজেক্টটিতে শুধুমাত্র docs.addonHasFileScopePermission , sheets.addonHasFileScopePermission , অথবা slides.addonHasFileScopePermission ফিল্ডগুলো থাকে। যদি অ্যাড-অনটির অথরাইজেশন থাকে, তাহলে ইভেন্ট অবজেক্টটিতে এডিটর ইভেন্ট অবজেক্টের সমস্ত ফিল্ড থাকে।

নিম্নলিখিত উদাহরণটি একটি এডিটর ইভেন্ট অবজেক্ট দেখায় যা একটি sheets.onFileScopeGrantedTrigger ফাংশনে পাস করা হয়। এখানে, অ্যাড-অনটির বর্তমান ডকুমেন্টের জন্য drive.file স্কোপ অনুমোদন রয়েছে:

{
  "commonEventObject": { ... },
  "sheets": {
    "addonHasFileScopePermission": true,
    "id":"A_24Q3CDA23112312ED52",
    "title":"How to get started with Sheets"
  },
  ...
}