বার্তা UI প্রসারিত করা হচ্ছে

Gmail-কে প্রসারিত করে এমন Google Workspace অ্যাড-অনগুলি ব্যবহারকারী যখন বার্তা পড়ছেন তখন একটি ইউজার ইন্টারফেস প্রদান করতে পারে। এটি Google Workspace অ্যাড-অনগুলিকে বার্তার বিষয়বস্তুর প্রতিক্রিয়া জানাতে স্বয়ংক্রিয় কাজগুলি করতে দেয়, যেমন বার্তা সম্পর্কিত অতিরিক্ত তথ্য প্রদর্শন, পুনরুদ্ধার বা পাঠানো।

অ্যাড-অন বার্তা UI অ্যাক্সেস করা হচ্ছে

অ্যাড-অনের মেসেজ UI দেখার দুটি উপায় আছে। প্রথম উপায় হল অ্যাড-অনটি খোলা থাকা অবস্থায় একটি মেসেজ খোলা (উদাহরণস্বরূপ, জিমেইল ইনবক্স উইন্ডোতে অ্যাড-অন হোমপেজ দেখার সময়)। দ্বিতীয় উপায় হল একটি মেসেজ দেখার সময় অ্যাড-অন শুরু করা।

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

একটি বার্তা অ্যাড-অন তৈরি করা হচ্ছে

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

  1. অ্যাড-অন স্ক্রিপ্ট প্রজেক্ট ম্যানিফেস্টে উপযুক্ত ক্ষেত্রগুলি যোগ করুন, বার্তা কার্যকারিতার জন্য প্রয়োজনীয় স্কোপগুলি সহ। ম্যানিফেস্টে একটি শর্তসাপেক্ষ ট্রিগার ক্ষেত্র যোগ করতে ভুলবেন না, যার unconditional মান {}
  2. একটি প্রাসঙ্গিক ট্রিগার ফাংশন বাস্তবায়ন করুন যা ব্যবহারকারী যখন কোনও বার্তায় অ্যাড-অন নির্বাচন করে তখন একটি বার্তা UI তৈরি করে।
  3. ব্যবহারকারীর UI ইন্টারঅ্যাকশনের প্রতিক্রিয়া জানাতে প্রয়োজনীয় সংশ্লিষ্ট ফাংশনগুলি বাস্তবায়ন করুন।

প্রাসঙ্গিক ট্রিগার

বার্তা পড়ার সময় ব্যবহারকারীদের সহায়তা প্রদানের জন্য, Google Workspace অ্যাড-অনগুলি তাদের ম্যানিফেস্টে একটি প্রাসঙ্গিক ট্রিগার সংজ্ঞায়িত করতে পারে। যখন ব্যবহারকারী একটি Gmail বার্তা খোলেন (অ্যাড-অন খোলা থাকা অবস্থায়) যা ট্রিগার মানদণ্ড পূরণ করে * তখন ট্রিগারটি সক্রিয় হয়। একটি ফায়ারড ট্রিগার একটি প্রাসঙ্গিক ট্রিগার ফাংশন কার্যকর করে যা অ্যাড-অন ব্যবহারকারী ইন্টারফেস তৈরি করে এবং এটি Gmail-এর প্রদর্শনের জন্য ফিরিয়ে দেয়। সেই সময়ে ব্যবহারকারী এটির সাথে ইন্টারঅ্যাক্ট করা শুরু করতে পারেন।

আপনার অ্যাড-অনের প্রজেক্ট ম্যানিফেস্টে কনটেক্সচুয়াল ট্রিগার সংজ্ঞায়িত করা আছে। ট্রিগার সংজ্ঞাটি Gmail কে বলে যে কোন ট্রিগার ফাংশন কোন পরিস্থিতিতে কার্যকর হবে। উদাহরণস্বরূপ, এই ম্যানিফেস্ট স্নিপেটটি একটি শর্তহীন ট্রিগার সেট করে যা একটি বার্তা খোলার সময় ট্রিগার ফাংশন onGmailMessageOpen() কে কল করে:

{
  ...
  "addOns": {

    "common": {
      ...
    },
    "gmail": {
      "contextualTriggers": [
        {
          "unconditional": {},
          "onTriggerFunction": "onGmailMessageOpen"
        }
      ],
      ...
    },
    ...
  }
  ...
}

প্রাসঙ্গিক ট্রিগার ফাংশন

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

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

  // Activate temporary Gmail scopes, in this case to allow
  // the add-on to read message metadata and content.
  var accessToken = e.gmail.accessToken;
  GmailApp.setCurrentMessageAccessToken(accessToken);

  // Read message metadata and content. This requires the Gmail scope
  // https://www.googleapis.com/auth/gmail.addons.current.message.readonly.
  var messageId = e.gmail.messageId;
  var message = GmailApp.getMessageById(messageId);
  var subject = message.getSubject();
  var sender = message.getFrom();
  var body = message.getPlainBody();
  var messageDate = message.getDate();

  // Setting the access token with a gmail.addons.current.message.readonly
  // scope also allows read access to the other messages in the thread.
  var thread = message.getThread();
  var threadMessages = thread.getMessages();

  // Using this link can avoid the need to copy message or thread content
  var threadLink = thread.getPermalink();

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

ট্রিগার ফাংশনটি অবশ্যই বিল্ট Card অবজেক্টের একটি অ্যারে তৈরি এবং ফেরত পাঠাবে। উদাহরণস্বরূপ, নিম্নলিখিতটি একটি একক কার্ড সহ একটি অ্যাড-অন তৈরি করে যা কেবল বার্তার বিষয় এবং প্রেরককে তালিকাভুক্ত করে:

  function onGmailMessageOpen(e) {
    // Activate temporary Gmail scopes, in this case to allow
    // message metadata to be read.
    var accessToken = e.gmail.accessToken;
    GmailApp.setCurrentMessageAccessToken(accessToken);

    var messageId = e.gmail.messageId;
    var message = GmailApp.getMessageById(messageId);
    var subject = message.getSubject();
    var sender = message.getFrom();

    // Create a card with a single card section and two widgets.
    // Be sure to execute build() to finalize the card construction.
    var exampleCard = CardService.newCardBuilder()
        .setHeader(CardService.newCardHeader()
            .setTitle('Example card'))
        .addSection(CardService.newCardSection()
            .addWidget(CardService.newKeyValue()
                .setTopLabel('Subject')
                .setContent(subject))
            .addWidget(CardService.newKeyValue()
                .setTopLabel('From')
                .setContent(sender)))
        .build();   // Don't forget to build the Card!
    return [exampleCard];
  }