হোমপেজ

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

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

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

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

এই ক্ষেত্রে আপনার অ্যাড-অন হোমপেজটি প্রদর্শিত হয়:

  • হোস্টে অ্যাড-অনটি প্রথমবার খোলার সময় (অনুমোদনের পর), অথবা যখন কোনো ব্যবহারকারী চ্যাটে আপনার চ্যাট অ্যাপের সাথে ১:১ সরাসরি মেসেজ করার সময় হোম ট্যাবটি খোলে।
  • যখন অ্যাড-অনটি খোলা থাকা অবস্থায় ব্যবহারকারী একটি প্রাসঙ্গিক প্রেক্ষাপট থেকে একটি অপ্রাসঙ্গিক প্রেক্ষাপটে যান। উদাহরণস্বরূপ, ক্যালেন্ডারের কোনো ইভেন্ট সম্পাদনা করা থেকে মূল ক্যালেন্ডারে যাওয়া।
  • যখন ব্যবহারকারী অভ্যন্তরীণ স্ট্যাকগুলো থেকে একটির পর একটি কার্ড বের করার জন্য যথেষ্ট সংখ্যক বার ব্যাক বাটনে ক্লিক করেন।
  • যখন একটি অ-প্রাসঙ্গিক কার্ডে UI ইন্টারঅ্যাকশনের ফলে একটি Navigation.popToRoot কল হয়।

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

হোমপেজ কনফিগারেশন

গুগল ওয়ার্কস্পেস অ্যাড-অনগুলি অ্যাড-অন ম্যানিফেস্টে হোস্ট অ্যাপ্লিকেশনগুলির জন্য ডিফল্ট হোমপেজ (অ-প্রাসঙ্গিক) অ্যাড-অন কন্টেন্ট কনফিগার করতে addOns.common.homepageTrigger ফিল্ডটি ব্যবহার করে:

{
  "addOns": {
    "common": {
      "homepageTrigger": {
        "runFunction": "myFunction",
        "enabled": true
      }
    }
  }
}
  • runFunction : এটি সেই গুগল অ্যাপস স্ক্রিপ্ট ফাংশনের নাম, যা গুগল ওয়ার্কস্পেস অ্যাড-অন ফ্রেমওয়ার্ক হোমপেজের অ্যাড-অন কার্ডগুলো রেন্ডার করার জন্য কল করে। এই ফাংশনটি হলো হোমপেজ ট্রিগার ফাংশন । এই ফাংশনটিকে অবশ্যই Card অবজেক্টের একটি অ্যারে তৈরি করে ফেরত দিতে হবে, যা হোমপেজের ইউজার ইন্টারফেস (UI) গঠন করে। যদি একাধিক কার্ড ফেরত আসে, তাহলে হোস্ট অ্যাপ্লিকেশনটি কার্ডের হেডারগুলো একটি তালিকায় দেখায়, যেখান থেকে ব্যবহারকারী কার্ড নির্বাচন করতে পারেন ( একাধিক কার্ড ফেরত দেওয়া দেখুন)।

  • enabled : এই স্কোপের জন্য হোমপেজ কার্ড সক্রিয় করা হবে কিনা। এই ফিল্ডটি ঐচ্ছিক, এবং এর ডিফল্ট মান হলো true । এটিকে false সেট করলে সমস্ত হোস্টের জন্য হোমপেজ কার্ড নিষ্ক্রিয় হয়ে যাবে (যদি না সেই হোস্টের জন্য অন্য কোনো ব্যবস্থা নেওয়া হয়; সেক্ষেত্রে হোস্ট-নির্দিষ্ট কনফিগারেশন দেখুন)।

কোনো হোস্টকে কমন হোমপেজ ব্যবহার করতে হলে, অ্যাড-অন ম্যানিফেস্টে addOns.common.homepageTrigger এবং হোস্টটির টপ-লেভেল রিসোর্স উভয়ই উপস্থিত থাকতে হবে। উদাহরণস্বরূপ, যদি ম্যানিফেস্টে addOns.gmail উপস্থিত না থাকে, তাহলে অ্যাড-অনটি Gmail-এর জন্য নিষ্ক্রিয় হয়ে যাবে এবং সেই হোস্টে কোনো হোমপেজ বা অন্যান্য কার্যকারিতা প্রদর্শন করবে না।

সাধারণ কনফিগারেশন ছাড়াও, প্রতিটি হোস্ট অ্যাপ্লিকেশনের কনফিগে, addOns.gmail.homepageTrigger , addOns.calendar.homepageTrigger এবং অন্যান্য হোস্ট-নির্দিষ্ট ট্রিগারগুলিতে অভিন্ন কাঠামোর প্রতি-হোস্ট ওভাররাইড উপলব্ধ রয়েছে।

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

{
  ...
  "addOns": {
    ...
    "common": {
      "homepageTrigger": { "runFunction": "buildHomePage" }
    },
    "calendar": {
      "homepageTrigger": { "runFunction": "buildCalendarHomepage" }
    },
    "drive": {
      "homepageTrigger": { "runFunction": "buildDriveHomepage" }
    },
    "gmail": {
      "homepageTrigger": { "enabled": false }
    },
    ...
  }
}

নিম্নলিখিত ম্যানিফেস্টের অংশটি পূর্ববর্তী উদাহরণের সমতুল্য, যদিও ডিফল্ট homepageTrigger এবং Gmail কনফিগারেশন বাদ দেওয়া হয়েছে:

{
  "addOns": {
    "common": {},
    "calendar": {
      "homepageTrigger": { "runFunction": "myCalendarFunction" }
    },
    "drive": {
      "homepageTrigger": { "runFunction": "myDriveFunction" }
    },
    "gmail": {},
    ...
  }
}

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

অ্যাড-অন হোমপেজ ট্রিগার ফাংশনের কার্যপ্রবাহ দেখানো ডায়াগ্রাম

চ্যাটের জন্য একটি হোমপেজ কনফিগার করুন

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

গুগল ক্লাউড কনসোলে আপনার চ্যাট অ্যাড-অনের জন্য একটি অ্যাপ হোম ট্রিগার সক্রিয় এবং কনফিগার করতে:

  1. Google Cloud কনসোলে, মেনু > এপিআই ও পরিষেবা > সক্রিয় এপিআই ও পরিষেবা > গুগল চ্যাট এপিআই > কনফিগারেশন- এ যান।

    গুগল চ্যাট এপিআই কনফিগারেশনে যান

  2. ইন্টারেক্টিভ ফিচারস- এর অধীনে, ‘এনেবল ইন্টারেক্টিভ ফিচারস’ চালু আছে কিনা তা নিশ্চিত করুন এবং তারপরে ‘সাপোর্ট অ্যাপ হোম’ চেকবক্সটি নির্বাচন করুন।

  3. কানেকশন সেটিংস > ট্রিগার-এর অধীনে, আপনার অ্যাড-অন আর্কিটেকচারের উপর ভিত্তি করে অ্যাপ হোম ফিল্ডে আপনার অ্যাপ হোম হ্যান্ডলার নির্দিষ্ট করুন:

    • HTTP : অ্যাপ হোম অনুরোধগুলি পরিচালনা করার জন্য HTTPS এন্ডপয়েন্ট URL লিখুন (অথবা এটি খালি রাখুন যাতে আপনার সাধারণ HTTP এন্ডপয়েন্ট URL সমস্ত ইভেন্ট গ্রহণ করে)।
    • গুগল অ্যাপস স্ক্রিপ্ট : আপনার হোমপেজ কার্ড তৈরি ও ফেরত দেওয়ার জন্য গুগল অ্যাপস স্ক্রিপ্ট কলব্যাক ফাংশনের নাম লিখুন (ডিফল্ট হলো onAppHome )।
  4. সংরক্ষণ করুন- এ ক্লিক করুন।

যখন কোনো ব্যবহারকারী আপনার চ্যাট অ্যাপের মাধ্যমে কোনো ডিরেক্ট মেসেজের হোম ট্যাব খোলে, তখন চ্যাট আপনার এন্ডপয়েন্ট বা ফাংশনে একটি 'অ্যাপ হোম' ট্রিগার ইভেন্ট পাঠায়। হোমপেজটি রেন্ডার করার জন্য, একটি pushCard ন্যাভিগেশন অ্যাকশনসহ একটি RenderActions অবজেক্ট রিটার্ন করুন (অথবা হোমপেজ কার্ডের কোনো বাটনে ক্লিক করার প্রতিক্রিয়ায় হোমপেজ আপডেট করার জন্য updateCard ' ব্যবহার করুন):

HTTP

{
  "action": {
    "navigations": [
      {
        "pushCard": {
          "header": {
            "title": "Welcome to App Home"
          },
          "sections": [
            {
              "widgets": [
                {
                  "textParagraph": {
                    "text": "Manage your settings and view your dashboard here."
                  }
                }
              ]
            }
          ]
        }
      }
    ]
  }
}

গুগল অ্যাপস স্ক্রিপ্ট

function onAppHome(event) {
  const card = CardService.newCardBuilder()
      .setHeader(
          CardService.newCardHeader().setTitle('Welcome to App Home'))
      .addSection(
          CardService.newCardSection().addWidget(
              CardService.newTextParagraph().setText(
                  'Manage your settings and view your dashboard here.')))
      .build();

  return CardService.newActionResponseBuilder()
      .setNavigation(CardService.newNavigation().pushCard(card))
      .build();
}

চ্যাট ট্রিগার পরিচালনা এবং অ্যাকশন ফেরত দেওয়ার বিষয়ে আরও বিস্তারিত জানতে, “ব্যবহারকারীর ইন্টারঅ্যাকশন গ্রহণ ও তার উত্তর দেওয়া” দেখুন।

হোমপেজ ইভেন্ট অবজেক্ট

কল করা হলে, পূর্বে বর্ণিত হোমপেজ ট্রিগার ফাংশন ( runFunction ) বা অ্যাপ হোম এন্ডপয়েন্টকে ইনভোকেশন কনটেক্সট থেকে ডেটা সম্বলিত একটি ইভেন্ট অবজেক্ট পাস করা হয়।

হোমপেজ ইভেন্ট অবজেক্টে উইজেট বা প্রাসঙ্গিক তথ্য অন্তর্ভুক্ত থাকে না। প্রেরিত তথ্যের মধ্যে নিম্নলিখিত সাধারণ ইভেন্ট অবজেক্ট ফিল্ডগুলো অন্তর্ভুক্ত থাকে:

চ্যাট-এর ক্ষেত্রে, অ্যাপ হোম ইভেন্ট অবজেক্টটিতে ব্যবহারকারী এবং ইন্টারঅ্যাকশনের সময় সম্পর্কিত তথ্যসহ chat ফিল্ডটিও অন্তর্ভুক্ত থাকে:

  • chat.user : যে চ্যাট ব্যবহারকারী হোম ট্যাবটি খুলেছেন।
  • chat.eventTime : ব্যবহারকারী যখন হোম ট্যাবটি খুলেছিলেন, সেই সময়।

আরও বিস্তারিত জানতে ইভেন্ট অবজেক্টটি দেখুন।

অন্যান্য অপ্রাসঙ্গিক কার্ড

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

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