Google Chat অ্যাপের মাধ্যমে ছুটিতে যান

1. ভূমিকা

গুগল চ্যাট অ্যাপগুলি সরাসরি চ্যাটে পরিষেবা এবং সংস্থান নিয়ে আসে যেখানে ব্যবহারকারীরা তথ্য পান এবং কথোপকথন থেকে বেরিয়ে না গিয়েও পদক্ষেপ নিতে পারেন।

এই কোডল্যাবে, আপনি শিখবেন কিভাবে একটি চ্যাট অ্যাপ তৈরি করতে হয়—"অ্যাটেনডেন্স চ্যাট অ্যাপ"—যা Gmail-এ ছুটির সময়সূচী নির্ধারণ করে এবং Google ক্যালেন্ডারে মিটিং শিডিউল করে। Google Apps Script- এ Attendance Chat অ্যাপ তৈরি করে, আপনি ড্রাইভ, Gmail, ক্যালেন্ডার, ডক্স, শিট এবং আরও অনেক কিছুর মতো অন্যান্য Google পরিষেবা সহজেই অ্যাক্সেস করতে পারবেন।

তুমি কি শিখবে

  • চ্যাটে উত্থাপিত ইভেন্টগুলিতে হ্যান্ডলার কীভাবে যোগ করবেন
  • চ্যাট থেকে পাঠানো ইভেন্ট অবজেক্টগুলি কীভাবে পার্স করবেন
  • কার্ড-ফর্ম্যাট করা উত্তর দিয়ে চ্যাটে কীভাবে উত্তর দেবেন
  • কার্ডগুলিতে বোতাম ক্লিকের জন্য কাস্টম অ্যাকশনগুলি কীভাবে সংজ্ঞায়িত করবেন এবং প্রতিক্রিয়া জানাবেন

তোমার যা লাগবে

  • ইন্টারনেট এবং একটি ওয়েব ব্রাউজার অ্যাক্সেস।
  • Google Workspace অ্যাকাউন্ট যার মাধ্যমে Google Chat অ্যাক্সেস করা যাবে।
  • মৌলিক জাভাস্ক্রিপ্ট দক্ষতা—গুগল অ্যাপস স্ক্রিপ্ট শুধুমাত্র জাভাস্ক্রিপ্ট সমর্থন করে।

2. নমুনা কোড পান

এই নমুনার প্রতিটি ধাপের কোড দেখতে আপনি একটি ZIP ফাইল ডাউনলোড করতে পারেন অথবা GitHub রিপোজিটরি ক্লোন করতে পারেন।

apps-script/attendance-chat-app এর অধীনে step-NN ফোল্ডারগুলিতে এই কোডল্যাবের প্রতিটি ধাপের শেষ অবস্থা থাকে। রেফারেন্সের জন্য এগুলি এখানে রয়েছে।

কোডটি ডাউনলোড করুন

এই কোডল্যাবের কোড ডাউনলোড করতে, নিম্নলিখিত বোতামে ক্লিক করুন:

ডাউনলোড করা ZIP ফাইলটি আনপ্যাক করুন। এটি একটি রুট ফোল্ডার ( google-chat-samples ) আনপ্যাক করে, যাতে apps-script/attendance-chat-app এর অধীনে এই কোডল্যাবের প্রতিটি ধাপের জন্য একটি করে ফোল্ডার থাকে।

GitHub রিপোজিটরি ক্লোন করুন

এই কোডল্যাবের জন্য GitHub রিপোজিটরি ক্লোন করতে, নিম্নলিখিত কমান্ডটি চালান:

git clone https://github.com/googleworkspace/google-chat-samples

৩. গুগল চ্যাট ইভেন্টের জন্য হ্যান্ডলার তৈরি করুন

একটি অ্যাপস স্ক্রিপ্ট প্রকল্প তৈরি করুন

একটি অ্যাপস স্ক্রিপ্ট প্রকল্প তৈরি করতে, নিম্নলিখিত পদক্ষেপগুলি গ্রহণ করুন:

  1. script.new এ যান।
  2. শিরোনামহীন প্রকল্পে ক্লিক করুন।
  3. স্ক্রিপ্ট অ্যাটেনডেন্স চ্যাট অ্যাপটির নাম পরিবর্তন করুন এবং পুনঃনামকরণ ক্লিক করুন।

গুগল চ্যাটের ইভেন্ট

চ্যাটের সাথে বেশিরভাগ অ্যাপস স্ক্রিপ্টের ইন্টারঅ্যাকশন ইভেন্ট-চালিত। ব্যবহারকারী, চ্যাট অ্যাপ এবং চ্যাটের মধ্যে ইন্টারঅ্যাকশন সাধারণত এই ক্রম অনুসরণ করে:

  1. একজন ব্যবহারকারী কোনও কাজ শুরু করেন, যেমন একটি স্পেসে একটি চ্যাট অ্যাপ যোগ করা, একটি চ্যাট অ্যাপ দিয়ে একটি সরাসরি বার্তা (DM) শুরু করা, অথবা একটি স্পেস থেকে একটি চ্যাট অ্যাপ সরানো।
  2. এই পদক্ষেপটি চ্যাটে চ্যাট অ্যাপকে লক্ষ্য করে একটি ইভেন্ট তৈরি করে।
  3. চ্যাট চ্যাট অ্যাপের স্ক্রিপ্টে সংজ্ঞায়িত সংশ্লিষ্ট ইভেন্ট হ্যান্ডলারকে কল করে।

চ্যাট ৪টি ইভেন্ট তৈরি করে যা আপনার অ্যাপ শুনতে পারে:

  • ADDED_TO_SPACE : এই ইভেন্টটি তখন ঘটে যখন একজন ব্যবহারকারী একটি স্পেস বা ডাইরেক্ট মেসেজে (DM) একটি চ্যাট অ্যাপ যোগ করেন। অ্যাপস স্ক্রিপ্টে, আপনি এই ইভেন্টটি পরিচালনা করার জন্য একটি onAddToSpace() ফাংশন সংজ্ঞায়িত করেন।
  • REMOVED_FROM_SPACE : এই ইভেন্টটি তখন ঘটে যখন একজন ব্যবহারকারী একটি স্পেস বা DM থেকে Chat অ্যাপটি সরিয়ে ফেলে। এই ইভেন্টটি Chat-এ কোনও প্রতিক্রিয়া পোস্ট করে না। Apps স্ক্রিপ্টে, আপনি এই ইভেন্টটি পরিচালনা করার জন্য একটি onRemoveFromSpace() ফাংশন সংজ্ঞায়িত করেন।
  • MESSAGE : এই ইভেন্টটি তখন ঘটে যখন একজন ব্যবহারকারী চ্যাট অ্যাপে সরাসরি DM-এ অথবা একটি স্পেসে @mention হিসেবে বার্তা পাঠান। Apps Script-এ, আপনি এই ইভেন্টে সাড়া দেওয়ার জন্য একটি onMessage() ফাংশন সংজ্ঞায়িত করেন।
  • CARD_CLICKED : এই ইভেন্টটি তখন ঘটে যখন ব্যবহারকারী একটি কাস্টম অ্যাকশন সহ একটি বোতামে ক্লিক করেন। Apps Script-এ, আপনি এই ইভেন্টে সাড়া দেওয়ার জন্য একটি onCardClick() ফাংশন সংজ্ঞায়িত করেন।

Code.gs ফাইলের বিষয়বস্তু ADDED_TO_SPACE এবং REMOVE_FROM_SPACE ইভেন্টের জন্য হ্যান্ডলার সংজ্ঞায়িত করে এমন নিম্নলিখিত কোড দিয়ে প্রতিস্থাপন করুন। (আপনি এই কোডল্যাবে পরে MESSAGE এবং CARD_CLICKED ইভেন্টের জন্য হ্যান্ডলার যোগ করবেন।)

কোড.জিএস

/**
 * Responds to an ADDED_TO_SPACE event in Google Chat.
 * @param {object} event the event object from Google Chat
 * @return {object} JSON-formatted response
 * @see https://developers.google.com/workspace/chat/receive-respond-interactions
 */
function onAddToSpace(event) {
  console.info(event);
  var message = 'Thank you for adding me to ';
  if (event.space.type === 'DM') {
    message += 'a DM, ' + event.user.displayName + '!';
  } else {
    message += event.space.displayName;
  }
  return { text: message };
}

/**
 * Responds to a REMOVED_FROM_SPACE event in Google Chat.
 * @param {object} event the event object from Google Chat
 * @see https://developers.google.com/workspace/chat/receive-respond-interactions
 */
function onRemoveFromSpace(event) {
  console.info(event);
  console.log('Chat app removed from ', event.space.name);
}

৪. চ্যাট অ্যাপটি প্রকাশ করুন এবং পরীক্ষা করুন

আপনার স্ক্রিপ্ট ম্যানিফেস্ট ফাইল আপডেট করুন

আপনার অ্যাপটি Chat-এ প্রকাশ করার আগে, আপনাকে স্ক্রিপ্ট ম্যানিফেস্ট আপডেট করতে হবে।

  1. প্রকল্প সেটিংসে ক্লিক করুন রূপরেখা_সেটিংস_কালো_২৪ডিপি.পিএনজি .
  2. এডিটর চেকবক্সে "appsscript.json" ম্যানিফেস্ট ফাইল দেখান নির্বাচন করুন।
  3. এডিটর ক্লিক করুন রূপরেখা_কোড_কালো_২৪ডিপি.পিএনজি .
  4. appsscript.json ফাইলটিতে ক্লিক করুন।
  5. আপনার ম্যানিফেস্ট ফাইলে "chat": {} লাইনটি যোগ করুন।

আপনার ম্যানিফেস্ট ফাইলটি নিম্নলিখিত উদাহরণের মতো দেখতে হবে।

অ্যাপস্ক্রিপ্ট.জেসন

{
  "timeZone": "America/Los_Angeles",
  "dependencies": {
  },
  "chat": {}
}

একটি গুগল ক্লাউড প্রকল্প তৈরি করুন

চ্যাট অ্যাপটি চালানো এবং পরীক্ষা করার আগে, আপনাকে একটি Google ক্লাউড প্রোজেক্ট তৈরি করতে হবে, চ্যাট API সক্ষম এবং কনফিগার করতে হবে এবং আপনার চ্যাট অ্যাপটি আপনার Google Workspace প্রতিষ্ঠানে প্রকাশ করতে হবে।

  1. গুগল ক্লাউড কনসোলে মেনুতে যান f5fbd278915eb7aa.png সম্পর্কে > IAM এবং অ্যাডমিন > একটি প্রকল্প তৈরি করুন

  2. প্রকল্পের নামের জন্য একটি বর্ণনামূলক নাম লিখুন।
  3. যদি অনুরোধ করা হয়, তাহলে সংস্থা এবং বিলিং অ্যাকাউন্ট নির্বাচন করুন।
  4. তৈরি করুন ক্লিক করুন।
  5. প্রকল্প তৈরি সম্পন্ন হলে পৃষ্ঠার উপরের ডানদিকে একটি বিজ্ঞপ্তি প্রদর্শিত হবে। প্রকল্পটি খুলতে প্রকল্প তৈরি করুন: <প্রকল্পের নাম> এন্ট্রিতে ক্লিক করুন।
  6. মেনুতে ক্লিক করুন f5fbd278915eb7aa.png সম্পর্কে > API এবং পরিষেবা > শংসাপত্র
  7. OAuth সম্মতি স্ক্রিনে ক্লিক করুন।
  8. অ্যাপ নামের জন্য, Attendance Chat অ্যাপ লিখুন।
  9. যদি অনুরোধ করা হয়, ব্যবহারকারীর সহায়তা ইমেল এবং ডেভেলপারের যোগাযোগের তথ্য লিখুন।
  10. সংরক্ষণ করুন এবং চালিয়ে যান ক্লিক করুন।
  11. সেটিংস এবং ইউটিলিটিগুলিতে ক্লিক করুন 50fa7e30ed2d1b1c.png সম্পর্কে > প্রকল্প সেটিংস
  12. প্রকল্প নম্বরটি কপি করুন।
  13. অ্যাপ স্ক্রিপ্ট এডিটরে ফিরে, প্রজেক্ট সেটিংসে ক্লিক করুন। রূপরেখা_সেটিংস_কালো_২৪ডিপি.পিএনজি .
  14. গুগল ক্লাউড প্ল্যাটফর্ম (জিসিপি) প্রজেক্টের অধীনে, প্রজেক্ট পরিবর্তন করুন এ ক্লিক করুন।
  15. GCP প্রজেক্ট নম্বরে ক্লিক করুন এবং প্রজেক্ট নম্বরটি লিখুন।
  16. প্রজেক্ট সেট করুন এ ক্লিক করুন।

অ্যাপটি চ্যাটে প্রকাশ করুন

আপনার চ্যাট অ্যাপটি Google Chat-এ প্রকাশ করতে, নিম্নলিখিতগুলি করুন:

  1. অ্যাপস স্ক্রিপ্ট এডিটরে, Deploy > New deployment এ ক্লিক করুন।
  2. Select type এর পাশে Enable deployment types এ ক্লিক করুন। রূপরেখা_সেটিংস_কালো_২৪ডিপি.পিএনজি .
  3. অ্যাড-অন নির্বাচন করুন এবং Deploy এ ক্লিক করুন।
  4. ডিপ্লয়মেন্ট আইডি কপি করুন এবং সম্পন্ন ক্লিক করুন।
  5. গুগল ক্লাউড কনসোলে মেনুতে যান f5fbd278915eb7aa.png সম্পর্কে > API এবং পরিষেবা > লাইব্রেরি

  6. গুগল চ্যাট এপিআই অনুসন্ধান করুন। ফলাফলের তালিকা থেকে এপিআইটি নির্বাচন করুন।
  7. Google Chat API পৃষ্ঠায়, সক্ষম করুন এ ক্লিক করুন।
  8. API সক্রিয় করার পরে, Configuration এ ক্লিক করুন। আপনাকে শংসাপত্র তৈরি করতে বলা যেকোনো বার্তা উপেক্ষা করুন।
  9. কনফিগারেশন পৃষ্ঠায়, নিম্নলিখিতগুলি করুন:
  • "এই চ্যাট অ্যাপটিকে ওয়ার্কস্পেস অ্যাড-অন হিসেবে তৈরি করুন" সাফ করুন এবং নিশ্চিত করতে "অক্ষম করুন" এ ক্লিক করুন।
  • অ্যাপ নামের জন্য, Attendance Chat অ্যাপ লিখুন।
  • Avatar URL এর জন্য, https://goo.gl/kv2ENA লিখুন।
  • বর্ণনার জন্য, Apps Script codelab Chat অ্যাপ লিখুন।
  • কার্যকারিতার অধীনে, এক-এক বার্তা গ্রহণ করুন নির্বাচন করুন।
  • সংযোগ সেটিংস এর অধীনে, অ্যাপস স্ক্রিপ্ট প্রকল্প নির্বাচন করুন এবং আপনার স্ক্রিপ্টের স্থাপনা আইডি টেক্সট বক্সে পেস্ট করুন।
  • "অনুমতি" এর অধীনে, "আপনার ডোমেনের নির্দিষ্ট ব্যক্তি এবং গোষ্ঠী" নির্বাচন করুন। ড্রপ-ডাউন মেনুর অধীনে টেক্সট বক্সে, আপনার Google Workspace সংস্থার সাথে সম্পর্কিত আপনার ইমেল ঠিকানা লিখুন।
  • সংরক্ষণ করুন ক্লিক করুন।

আপনার পরিবর্তনগুলি সংরক্ষণ করার পরে, যাচাই করুন যে Google Chat API পৃষ্ঠার স্ট্যাটাসে অ্যাপ স্ট্যাটাসটি লাইভ হিসেবে দেখানো হচ্ছে - যা ব্যবহারকারীদের জন্য উপলব্ধ

চ্যাট অ্যাপটি পরীক্ষা করুন

গুগল চ্যাটে আপনার অ্যাপ পরীক্ষা করতে, নিম্নলিখিতগুলি করুন:

  1. গুগল চ্যাট খুলুন।
  2. চ্যাট শুরু করুন এ ক্লিক করে চ্যাট অ্যাপে একটি নতুন সরাসরি বার্তা পাঠান। রাউন্ড_অ্যাড_ব্ল্যাক_২৪ডিপি.পিএনজি > অ্যাপস খুঁজুন
  3. অ্যাপস খুঁজুন পৃষ্ঠায়, অ্যাটেন্ডেন্স চ্যাট অ্যাপটি অনুসন্ধান করুন।
  4. Attendance Chat অ্যাপের পাশে, Add > Chat এ ক্লিক করুন।

যখন ডাইরেক্ট মেসেজ থ্রেডটি খুলবে, তখন আপনি চ্যাট অ্যাপ থেকে একটি বার্তা দেখতে পাবেন যেখানে এটি একটি DM-এ যোগ করার জন্য আপনাকে ধন্যবাদ জানানো হবে, যেমনটি নিম্নলিখিত ছবিতে দেখানো হয়েছে।

22ea6d660d72eeca.png দ্বারা পোস্ট করা 1 অনুবাদ, বিস্তারিত সব অনুবাদ

৫. কার্ড-ফর্ম্যাটেড প্রতিক্রিয়া সংজ্ঞায়িত করুন

আগের ধাপে, আপনার অ্যাপটি একটি সাধারণ টেক্সট রেসপন্সের মাধ্যমে Google চ্যাট ইভেন্টগুলিতে প্রতিক্রিয়া জানিয়েছিল। এই ধাপে, আপনি কার্ডের মাধ্যমে প্রতিক্রিয়া জানাতে আপনার অ্যাপটি আপডেট করবেন।

কার্ডের প্রতিক্রিয়া

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

নিচের ছবিতে তিনটি অংশ সহ একটি কার্ড প্রতিক্রিয়া দেখানো হয়েছে, যার মধ্যে একটি হেডার, একটি কী/মান উইজেট, একটি চিত্র উইজেট এবং একটি টেক্সট বোতাম রয়েছে।

b5a194ed8d745ba9.png সম্পর্কে

কার্ড রেসপন্সের মাধ্যমে ব্যবহারকারীর বার্তাগুলির উত্তর দিতে, আপনার চ্যাট অ্যাপের Code.gs ফাইলে নিম্নলিখিত কোডটি যোগ করুন।

কোড.জিএস

const DEFAULT_IMAGE_URL = 'https://goo.gl/bMqzYS';
const HEADER = {
  header: {
    title : 'Attendance Chat app',
    subtitle : 'Log your vacation time',
    imageUrl : DEFAULT_IMAGE_URL
  }
};

/**
 * Creates a card-formatted response.
 * @param {object} widgets the UI components to send
 * @return {object} JSON-formatted response
 */
function createCardResponse(widgets) {
  return {
    cards: [HEADER, {
      sections: [{
        widgets: widgets
      }]
    }]
  };
}

/**
 * Responds to a MESSAGE event triggered
 * in Google Chat.
 *
 * @param event the event object from Google Chat
 * @return JSON-formatted response
 */
function onMessage(event) {
  const userMessage = event.message.text;

  const widgets = [{
    "textParagraph": {
      "text": "You said: " + userMessage
    }
  }];

  return createCardResponse(widgets);
}

এই ধাপে যোগ করা onMessage() ফাংশনটি ব্যবহারকারীর মূল বার্তাটি পড়ে এবং একটি সাধারণ TextParagragh উইজেট হিসেবে একটি প্রতিক্রিয়া তৈরি করে। onMessage() ফাংশনটি তারপর createCardResponse() কে কল করে, যা TextParagraph উইজেটটিকে একটি একক কার্ডের একটি অংশের মধ্যে রাখে। চ্যাট অ্যাপটি কার্ড প্রতিক্রিয়া দিয়ে তৈরি জাভাস্ক্রিপ্ট অবজেক্টটি Google Chat-এ ফেরত পাঠায়।

চ্যাট অ্যাপটি পরীক্ষা করুন

এই অ্যাপটি পরীক্ষা করার জন্য, Google Chat- এ অ্যাপটি ব্যবহার করে আপনার সরাসরি বার্তায় ফিরে যান এবং একটি বার্তা টাইপ করুন (যেকোন বার্তাই কার্যকর হবে)।

e12417d9aa7e177c.png

মনে রাখবেন যে onMessage() ইভেন্ট হ্যান্ডলার ব্যবহারকারীর আসল বার্তাটি বের করার জন্য Google Chat দ্বারা প্রেরিত ইভেন্ট অবজেক্টটিকে পার্স করে। আপনি ইভেন্ট সম্পর্কে অন্যান্য ধরণের তথ্যও পেতে পারেন, যার মধ্যে রয়েছে ইভেন্টটি শুরু করা ব্যবহারকারীর নাম, তাদের ইমেল ঠিকানা, ইভেন্টটি যে স্থানে ঘটেছে তার নাম এবং আরও অনেক কিছু।

গুগল চ্যাটের পাঠানো ইভেন্ট অবজেক্টের গঠন সম্পর্কে আরও তথ্যের জন্য, ইভেন্ট ফর্ম্যাট রেফারেন্স দেখুন।

৬. কার্ডের বোতামে ক্লিক করলে প্রতিক্রিয়া দেখান

আগের ধাপে, আপনার চ্যাট অ্যাপটি একজন ব্যবহারকারীর একটি বার্তার উত্তর দিয়েছে—একটি MESSAGE ইভেন্ট—একটি সাধারণ কার্ড ব্যবহার করে যার মধ্যে একটি TextParagragh উইজেট ছিল। এই ধাপে, আপনি একটি প্রতিক্রিয়া তৈরি করবেন যাতে বোতাম থাকবে, যেখানে প্রতিটি বোতামের জন্য একটি কাস্টম ক্রিয়া সংজ্ঞায়িত থাকবে।

ইন্টারেক্টিভ কার্ড

কার্ডের প্রতিক্রিয়াগুলিতে দুই ধরণের বোতাম থাকতে পারে: টেক্সট বোতাম উইজেট, যা শুধুমাত্র টেক্সট বোতাম প্রদর্শন করে; এবং ইমেজবাটন উইজেট, যা টেক্সট ছাড়াই একটি সাধারণ আইকন বা চিত্র সহ একটি বোতাম প্রদর্শন করে। টেক্সটবাটন এবং ইমেজবাটন উভয় উইজেটই দুটি onClick আচরণের একটি সমর্থন করে (যেমনটি গুগল চ্যাটে ফেরত পাঠানো JSON প্রতিক্রিয়াতে সংজ্ঞায়িত করা হয়েছে): হয় openLink অথবা action । নাম থেকেই বোঝা যাচ্ছে, openLink একটি নতুন ব্রাউজার ট্যাবে একটি নির্দিষ্ট লিঙ্ক খোলে।

action অবজেক্টটি বোতামটি সম্পাদন করার জন্য একটি কাস্টম অ্যাকশন নির্দিষ্ট করে। আপনি অ্যাকশন অবজেক্টে বেশ কয়েকটি ইচ্ছামত মান নির্দিষ্ট করতে পারেন, যার মধ্যে একটি অনন্য actionMethodName এবং কী / মান প্যারামিটার জোড়ার একটি সেট অন্তর্ভুক্ত।

বোতামের জন্য একটি action অবজেক্ট নির্দিষ্ট করলে একটি ইন্টারেক্টিভ কার্ড তৈরি হয়। ব্যবহারকারী যখন বার্তার বোতামে ক্লিক করেন, তখন Google Chat একটি CARD_CLICKED ইভেন্ট উত্থাপন করে এবং মূল বার্তাটি পাঠানো অ্যাপটিতে একটি অনুরোধ ফেরত পাঠায়। এরপর অ্যাপটিকে Google Chat থেকে উত্থাপিত ইভেন্টটি পরিচালনা করতে হবে এবং স্পেসে একটি প্রতিক্রিয়া ফেরত পাঠাতে হবে।

Code.gsonMessage() ফাংশনটি নিম্নলিখিত কোড দিয়ে প্রতিস্থাপন করুন। এই কোডটি Google Chat-এ পাঠানো কার্ডে 2টি বোতাম, Gmail-এ একটি Set vacation এবং Calendar-এ একটি Block out day বোতাম তৈরি করে।

কোড.জিএস

const REASON = {
  SICK: 'Out sick',
  OTHER: 'Out of office'
};
/**
 * Responds to a MESSAGE event triggered in Google Chat.
 * @param {object} event the event object from Google Chat
 * @return {object} JSON-formatted response
 */
function onMessage(event) {
  console.info(event);
  const reason = REASON.OTHER;
  const name = event.user.displayName;
  const userMessage = event.message.text;

  // If the user said that they were 'sick', adjust the image in the
  // header sent in response.
  if (userMessage.indexOf('sick') > -1) {
    // Hospital material icon
    HEADER.header.imageUrl = 'https://goo.gl/mnZ37b';
    reason = REASON.SICK;
  } else if (userMessage.indexOf('vacation') > -1) {
    // Spa material icon
    HEADER.header.imageUrl = 'https://goo.gl/EbgHuc';
  }

  const widgets = [{
    textParagraph: {
      text: 'Hello, ' + name + '.<br/>Are you taking time off today?'
    }
  }, {
    buttons: [{
      textButton: {
        text: 'Set vacation in Gmail',
        onClick: {
          action: {
            actionMethodName: 'turnOnAutoResponder',
            parameters: [{
              key: 'reason',
              value: reason
            }]
          }
        }
      }
    }, {
      textButton: {
        text: 'Block out day in Calendar',
        onClick: {
          action: {
            actionMethodName: 'blockOutCalendar',
            parameters: [{
              key: 'reason',
              value: reason
            }]
          }
        }
      }
    }]
  }];
  return createCardResponse(widgets);
}

CARD_CLICKED ইভেন্টটি পরিচালনা করতে, আপনার চ্যাট অ্যাপের স্ক্রিপ্টে onCardClick() ফাংশনটি যোগ করতে হবে। নিম্নলিখিত কোডটি যোগ করুন যা onCardClick() ফাংশনটি Code.gs সংজ্ঞায়িত করে।

কোড.জিএস

/**
 * Responds to a CARD_CLICKED event triggered in Google Chat.
 * @param {object} event the event object from Google Chat
 * @return {object} JSON-formatted response
 * @see https://developers.google.com/workspace/chat/receive-respond-interactions
 */
function onCardClick(event) {
  console.info(event);
  let message = '';
  const reason = event.action.parameters[0].value;
  if (event.action.actionMethodName == 'turnOnAutoResponder') {
    turnOnAutoResponder(reason);
    message = 'Turned on vacation settings.';
  } else if (event.action.actionMethodName == 'blockOutCalendar') {
    blockOutCalendar(reason);
    message = 'Blocked out your calendar for the day.';
  } else {
    message = "I'm sorry; I'm not sure which button you clicked.";
  }
  return { text: message };
}

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

চ্যাট অ্যাপটিকে Gmail এবং Calendar এর সাথে ইন্টিগ্রেট করতে আপনার স্ক্রিপ্টে নিম্নলিখিত কোডটি যোগ করুন।

কোড.জিএস

const ONE_DAY_MILLIS = 24 * 60 * 60 * 1000;
/**
 * Turns on the user's vacation response for today in Gmail.
 * @param {string} reason the reason for vacation, either REASON.SICK or REASON.OTHER
 */
function turnOnAutoResponder(reason) {
  let currentTime = (new Date()).getTime();
  Gmail.Users.Settings.updateVacation({
    enableAutoReply: true,
    responseSubject: reason,
    responseBodyHtml: "I'm out of the office today; will be back on the next business day.<br><br><i>Created by Attendance Chat app!</i>",
    restrictToContacts: true,
    restrictToDomain: true,
    startTime: currentTime,
    endTime: currentTime + ONE_DAY_MILLIS
  }, 'me');
}

/**
 * Places an all-day meeting on the user's Calendar.
 * @param {string} reason the reason for vacation, either REASON.SICK or REASON.OTHER
 */
function blockOutCalendar(reason) {
  CalendarApp.createAllDayEvent(reason, new Date(), new Date(Date.now() + ONE_DAY_MILLIS));
}

অবশেষে, আপনাকে প্রকল্পে Gmail উন্নত পরিষেবা সক্ষম করতে হবে। Gmail API সক্ষম করতে, নিম্নলিখিতগুলি করুন:

  1. অ্যাপস স্ক্রিপ্ট এডিটরে, পরিষেবাগুলির পাশে, একটি পরিষেবা যোগ করুন ক্লিক করুন। রাউন্ড_অ্যাড_ব্ল্যাক_২৪ডিপি.পিএনজি .
  2. জিমেইল এপিআই নির্বাচন করুন।
  3. নীচের Google Cloud Platform API Dashboard-এ ক্লিক করলে Google Cloud Console খুলবে।
  4. API এবং পরিষেবা সক্ষম করুন ক্লিক করুন।
  5. জিমেইল এপিআই অনুসন্ধান করুন এবং জিমেইল এপিআইতে ক্লিক করুন।
  6. Gmail API পৃষ্ঠায়, Enable এ ক্লিক করুন।

চ্যাট অ্যাপটি পরীক্ষা করুন

আপনার চ্যাট অ্যাপের এই সংস্করণটি পরীক্ষা করার জন্য, Google Chat- এ পূর্ববর্তী ধাপগুলিতে শুরু করা DMটি খুলুন এবং টাইপ করুন I'm going on vacation । অ্যাপটি নীচের ছবির মতো একটি কার্ড দিয়ে সাড়া দেবে।

দ্রষ্টব্য: যদি আপনাকে অ্যাপটিতে অ্যাক্সেস দিতে বলা হয়, তাহলে আপনাকে দ্বিতীয়বার আপনার বার্তা টাইপ করতে হতে পারে।

c0e8d9d0b5d0cf8b.png সম্পর্কে

৭. অভিনন্দন!

আপনার চ্যাট অ্যাপ এখন ব্যবহারকারীর বার্তাগুলির উত্তর দিতে পারে, Gmail-এ তাদের ছুটির উত্তরদাতা সেট করতে পারে এবং তাদের ক্যালেন্ডারে একটি সারাদিনের ইভেন্ট রাখতে পারে।

আমরা যা কভার করেছি

  • অ্যাপস স্ক্রিপ্ট ব্যবহার করে একটি গুগল চ্যাট অ্যাপ তৈরি এবং প্রকাশ করা হয়েছে
  • ব্যবহারকারীর বার্তাগুলির উত্তরে সহজ উত্তর দেওয়া হয়েছে
  • চ্যাট অ্যাপের মাধ্যমে ব্যবহারকারীর পক্ষ থেকে অন্যান্য Google Workspace পরিষেবার সাথে ইন্টারঅ্যাক্ট করেছেন

আরও জানুন