এই নির্দেশিকায় ব্যাখ্যা করা হয়েছে কিভাবে গুগল চ্যাট এপিআই-এর Message রিসোর্সের create() মেথড ব্যবহার করে নিম্নলিখিত যেকোনো কাজ করা যায়:
- টেক্সট, কার্ড এবং ইন্টারেক্টিভ উইজেট সম্বলিত মেসেজ পাঠান।
- কোনো নির্দিষ্ট চ্যাট ব্যবহারকারীকে ব্যক্তিগতভাবে বার্তা পাঠান।
- একটি বার্তা থ্রেড শুরু করুন বা তার উত্তর দিন।
- একটি বার্তার নাম দিন, যাতে আপনি অন্যান্য চ্যাট এপিআই অনুরোধে সেটি উল্লেখ করতে পারেন।
বার্তার সর্বোচ্চ আকার (যেকোনো টেক্সট বা কার্ড সহ) হলো ৩২,০০০ বাইট। এই আকারের চেয়ে বড় কোনো বার্তা পাঠাতে হলে, আপনার চ্যাট অ্যাপকে অবশ্যই একাধিক বার্তা পাঠাতে হবে।
মেসেজ তৈরি করার জন্য চ্যাট এপিআই (Chat API) কল করার পাশাপাশি, চ্যাট অ্যাপগুলো ব্যবহারকারীর ইন্টারঅ্যাকশনের উত্তর দেওয়ার জন্য মেসেজ তৈরি ও পাঠাতে পারে; যেমন, কোনো ব্যবহারকারী একটি স্পেসে চ্যাট অ্যাপটি যুক্ত করার পর একটি স্বাগত বার্তা পোস্ট করা। ইন্টারঅ্যাকশনের উত্তর দেওয়ার সময়, চ্যাট অ্যাপগুলো অন্যান্য ধরনের মেসেজিং ফিচার ব্যবহার করতে পারে, যার মধ্যে রয়েছে ইন্টারেক্টিভ ডায়ালগ এবং লিঙ্ক প্রিভিউ ইন্টারফেস। কোনো ব্যবহারকারীকে উত্তর দেওয়ার জন্য, চ্যাট অ্যাপটি চ্যাট এপিআই কল না করেই সিনক্রোনাসভাবে মেসেজটি ফেরত পাঠায়। ইন্টারঅ্যাকশনের উত্তর দেওয়ার জন্য মেসেজ পাঠানো সম্পর্কে জানতে, “আপনার গুগল চ্যাট অ্যাপের মাধ্যমে ইন্টারঅ্যাকশন গ্রহণ ও তার উত্তর দিন” দেখুন।
চ্যাট এপিআই দিয়ে তৈরি করা মেসেজগুলো চ্যাট কীভাবে প্রদর্শন ও বৈশিষ্ট্যমণ্ডিত করে
আপনি অ্যাপ অথেন্টিকেশন এবং ইউজার অথেন্টিকেশন ব্যবহার করে create() মেথডটি কল করতে পারেন। আপনার ব্যবহৃত অথেন্টিকেশনের ধরনের উপর নির্ভর করে চ্যাট মেসেজ প্রেরককে ভিন্নভাবে অ্যাট্রিবিউট করে।
আপনি যখন চ্যাট অ্যাপ হিসেবে প্রমাণীকরণ করেন, তখন চ্যাট অ্যাপটি বার্তাটি পাঠায়।
App প্রদর্শন করে।যখন আপনি একজন ব্যবহারকারী হিসেবে প্রমাণীকরণ করেন, তখন চ্যাট অ্যাপটি ব্যবহারকারীর পক্ষ থেকে বার্তাটি পাঠায়। এছাড়াও, চ্যাট অ্যাপটির নাম প্রদর্শন করার মাধ্যমে বার্তাটিতে অ্যাপটির নাম উল্লেখ করা হয়।
অথেন্টিকেশন টাইপ আরও নির্ধারণ করে যে আপনি মেসেজে কোন কোন মেসেজিং ফিচার এবং ইন্টারফেস অন্তর্ভুক্ত করতে পারবেন। অ্যাপ অথেন্টিকেশনের মাধ্যমে, চ্যাট অ্যাপগুলো রিচ টেক্সট, কার্ড-ভিত্তিক ইন্টারফেস এবং ইন্টারেক্টিভ উইজেট সম্বলিত মেসেজ পাঠাতে পারে। ইউজার অথেন্টিকেশনের মাধ্যমে, আপনি টেক্সট মেসেজ পাঠাতে পারেন। ডেভেলপার প্রিভিউতে , আপনি কার্ডও পাঠাতে পারেন, যেমনটি 'কার্ড তৈরি এবং আপডেট করুন' অংশে নথিভুক্ত করা হয়েছে।
চ্যাট এপিআই-এর জন্য উপলব্ধ মেসেজিং বৈশিষ্ট্যগুলি সম্পর্কে আরও জানতে, গুগল চ্যাট মেসেজ ওভারভিউ দেখুন।
এই নির্দেশিকায় ব্যাখ্যা করা হয়েছে কীভাবে চ্যাট এপিআই ব্যবহার করে বার্তা পাঠানোর জন্য যেকোনো একটি প্রমাণীকরণ পদ্ধতি ব্যবহার করতে হয়।
পূর্বশর্ত
নোড.জেএস
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- আপনার পরিবেশ প্রস্তুত করুন:
- একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন ।
- OAuth সম্মতি স্ক্রিনটি কনফিগার করুন ।
- আপনার চ্যাট অ্যাপের জন্য একটি নাম, আইকন এবং বিবরণ দিয়ে গুগল চ্যাট এপিআই সক্রিয় ও কনফিগার করুন ।
- Node.js ক্লাউড ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন।
- আপনার গুগল চ্যাট এপিআই অনুরোধে আপনি যেভাবে প্রমাণীকরণ করতে চান, তার উপর ভিত্তি করে অ্যাক্সেস ক্রেডেনশিয়াল তৈরি করুন:
- চ্যাট ব্যবহারকারী হিসেবে প্রমাণীকরণের জন্য, OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়াল তৈরি করুন এবং ক্রেডেনশিয়ালগুলো আপনার স্থানীয় ডিরেক্টরিতে
credentials.jsonনামের একটি JSON ফাইল হিসেবে সংরক্ষণ করুন। - চ্যাট অ্যাপ হিসেবে প্রমাণীকরণের জন্য, পরিষেবা অ্যাকাউন্টের ক্রেডেনশিয়াল তৈরি করুন এবং ক্রেডেনশিয়ালগুলো
credentials.jsonনামের একটি JSON ফাইল হিসেবে সংরক্ষণ করুন।
- চ্যাট ব্যবহারকারী হিসেবে প্রমাণীকরণের জন্য, OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়াল তৈরি করুন এবং ক্রেডেনশিয়ালগুলো আপনার স্থানীয় ডিরেক্টরিতে
- আপনি ব্যবহারকারী হিসেবে নাকি চ্যাট অ্যাপ হিসেবে প্রমাণীকরণ করতে চান, তার উপর ভিত্তি করে অনুমোদনের পরিধি বেছে নিন ।
- একটি গুগল চ্যাট স্পেস, যেখানে প্রমাণীকৃত ব্যবহারকারী বা আহ্বানকারী চ্যাট অ্যাপটি সদস্য। চ্যাট অ্যাপ হিসেবে প্রমাণীকরণের জন্য, চ্যাট অ্যাপটিকে স্পেসটিতে যুক্ত করুন ।
পাইথন
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- আপনার পরিবেশ প্রস্তুত করুন:
- একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন ।
- OAuth সম্মতি স্ক্রিনটি কনফিগার করুন ।
- আপনার চ্যাট অ্যাপের জন্য একটি নাম, আইকন এবং বিবরণ দিয়ে গুগল চ্যাট এপিআই সক্রিয় ও কনফিগার করুন ।
- পাইথন ক্লাউড ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন।
- আপনার গুগল চ্যাট এপিআই অনুরোধে আপনি যেভাবে প্রমাণীকরণ করতে চান, তার উপর ভিত্তি করে অ্যাক্সেস ক্রেডেনশিয়াল তৈরি করুন:
- চ্যাট ব্যবহারকারী হিসেবে প্রমাণীকরণের জন্য, OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়াল তৈরি করুন এবং ক্রেডেনশিয়ালগুলো আপনার স্থানীয় ডিরেক্টরিতে
credentials.jsonনামের একটি JSON ফাইল হিসেবে সংরক্ষণ করুন। - চ্যাট অ্যাপ হিসেবে প্রমাণীকরণের জন্য, পরিষেবা অ্যাকাউন্টের ক্রেডেনশিয়াল তৈরি করুন এবং ক্রেডেনশিয়ালগুলো
credentials.jsonনামের একটি JSON ফাইল হিসেবে সংরক্ষণ করুন।
- চ্যাট ব্যবহারকারী হিসেবে প্রমাণীকরণের জন্য, OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়াল তৈরি করুন এবং ক্রেডেনশিয়ালগুলো আপনার স্থানীয় ডিরেক্টরিতে
- আপনি ব্যবহারকারী হিসেবে নাকি চ্যাট অ্যাপ হিসেবে প্রমাণীকরণ করতে চান, তার উপর ভিত্তি করে অনুমোদনের পরিধি বেছে নিন ।
- একটি গুগল চ্যাট স্পেস, যেখানে প্রমাণীকৃত ব্যবহারকারী বা আহ্বানকারী চ্যাট অ্যাপটি সদস্য। চ্যাট অ্যাপ হিসেবে প্রমাণীকরণের জন্য, চ্যাট অ্যাপটিকে স্পেসটিতে যুক্ত করুন ।
জাভা
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- আপনার পরিবেশ প্রস্তুত করুন:
- একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন ।
- OAuth সম্মতি স্ক্রিনটি কনফিগার করুন ।
- আপনার চ্যাট অ্যাপের জন্য একটি নাম, আইকন এবং বিবরণ দিয়ে গুগল চ্যাট এপিআই সক্রিয় ও কনফিগার করুন ।
- জাভা ক্লাউড ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন।
- আপনার গুগল চ্যাট এপিআই অনুরোধে আপনি যেভাবে প্রমাণীকরণ করতে চান, তার উপর ভিত্তি করে অ্যাক্সেস ক্রেডেনশিয়াল তৈরি করুন:
- চ্যাট ব্যবহারকারী হিসেবে প্রমাণীকরণের জন্য, OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়াল তৈরি করুন এবং ক্রেডেনশিয়ালগুলো আপনার স্থানীয় ডিরেক্টরিতে
credentials.jsonনামের একটি JSON ফাইল হিসেবে সংরক্ষণ করুন। - চ্যাট অ্যাপ হিসেবে প্রমাণীকরণের জন্য, পরিষেবা অ্যাকাউন্টের ক্রেডেনশিয়াল তৈরি করুন এবং ক্রেডেনশিয়ালগুলো
credentials.jsonনামের একটি JSON ফাইল হিসেবে সংরক্ষণ করুন।
- চ্যাট ব্যবহারকারী হিসেবে প্রমাণীকরণের জন্য, OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়াল তৈরি করুন এবং ক্রেডেনশিয়ালগুলো আপনার স্থানীয় ডিরেক্টরিতে
- আপনি ব্যবহারকারী হিসেবে নাকি চ্যাট অ্যাপ হিসেবে প্রমাণীকরণ করতে চান, তার উপর ভিত্তি করে অনুমোদনের পরিধি বেছে নিন ।
- একটি গুগল চ্যাট স্পেস, যেখানে প্রমাণীকৃত ব্যবহারকারী বা আহ্বানকারী চ্যাট অ্যাপটি সদস্য। চ্যাট অ্যাপ হিসেবে প্রমাণীকরণের জন্য, চ্যাট অ্যাপটিকে স্পেসটিতে যুক্ত করুন ।
অ্যাপস স্ক্রিপ্ট
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- আপনার পরিবেশ প্রস্তুত করুন:
- একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন ।
- OAuth সম্মতি স্ক্রিনটি কনফিগার করুন ।
- আপনার চ্যাট অ্যাপের জন্য একটি নাম, আইকন এবং বিবরণ দিয়ে গুগল চ্যাট এপিআই সক্রিয় ও কনফিগার করুন ।
- একটি স্বতন্ত্র অ্যাপস স্ক্রিপ্ট প্রজেক্ট তৈরি করুন এবং অ্যাডভান্সড চ্যাট সার্ভিসটি চালু করুন।
- এই নির্দেশিকায়, আপনাকে অবশ্যই ব্যবহারকারী অথবা অ্যাপ প্রমাণীকরণ ব্যবহার করতে হবে। চ্যাট অ্যাপ হিসেবে প্রমাণীকরণের জন্য, পরিষেবা অ্যাকাউন্টের ক্রেডেনশিয়াল তৈরি করুন। ধাপগুলোর জন্য, ‘গুগল চ্যাট অ্যাপ হিসেবে প্রমাণীকরণ ও অনুমোদন’ দেখুন।
- আপনি ব্যবহারকারী হিসেবে নাকি চ্যাট অ্যাপ হিসেবে প্রমাণীকরণ করতে চান, তার উপর ভিত্তি করে অনুমোদনের পরিধি বেছে নিন ।
- একটি গুগল চ্যাট স্পেস, যেখানে প্রমাণীকৃত ব্যবহারকারী বা আহ্বানকারী চ্যাট অ্যাপটি সদস্য। চ্যাট অ্যাপ হিসেবে প্রমাণীকরণের জন্য, চ্যাট অ্যাপটিকে স্পেসটিতে যুক্ত করুন ।
চ্যাট অ্যাপ হিসেবে একটি বার্তা পাঠান
এই বিভাগে অ্যাপ অথেন্টিকেশন ব্যবহার করে টেক্সট, কার্ড এবং ইন্টারেক্টিভ অ্যাকসেসরি উইজেট সম্বলিত মেসেজ পাঠানোর পদ্ধতি ব্যাখ্যা করা হয়েছে।
অ্যাপ অথেন্টিকেশন ব্যবহার করে CreateMessage() মেথডটি কল করতে হলে, আপনাকে রিকোয়েস্টে নিম্নলিখিত ফিল্ডগুলো অবশ্যই উল্লেখ করতে হবে:
-
chat.botঅনুমোদনের পরিধি । - যে
Spaceরিসোর্সে আপনি বার্তাটি পোস্ট করতে চান। চ্যাট অ্যাপটিকে অবশ্যই স্পেসটির সদস্য হতে হবে। - তৈরি করার জন্য
Messageরিসোর্স। মেসেজের বিষয়বস্তু নির্ধারণ করতে, আপনি রিচ টেক্সট (text), এক বা একাধিক কার্ড ইন্টারফেস (cardsV2), অথবা উভয়ই অন্তর্ভুক্ত করতে পারেন।
ঐচ্ছিকভাবে, আপনি নিম্নলিখিত বিষয়গুলো অন্তর্ভুক্ত করতে পারেন:
- বার্তার নীচে ইন্টারেক্টিভ বাটন যুক্ত করার জন্য
accessoryWidgetsফিল্ডটি ব্যবহার করুন। - নির্দিষ্ট কোনো ব্যবহারকারীকে ব্যক্তিগতভাবে বার্তা পাঠানোর জন্য
privateMessageViewerফিল্ডটি ব্যবহৃত হয়। -
messageIdফিল্ডটি আপনাকে অন্যান্য API অনুরোধে ব্যবহার করার জন্য মেসেজটির নাম দেওয়ার সুযোগ দেয়। - একটি থ্রেড শুরু করতে বা তার উত্তর দিতে
thread.threadKeyএবংmessageReplyOptionফিল্ড ব্যবহৃত হয়। যদি স্পেসটি থ্রেডিং ব্যবহার না করে, তবে এই ফিল্ডটি উপেক্ষা করা হয়।
নিম্নলিখিত কোডটিতে একটি উদাহরণ দেখানো হয়েছে, যেখানে একটি চ্যাট অ্যাপ থেকে কীভাবে একটি বার্তা পাঠানো যায়, যেটিতে টেক্সট, একটি কার্ড এবং বার্তার নীচে একটি ক্লিকযোগ্য বাটন থাকে:
নোড.জেএস
পাইথন
জাভা
অ্যাপস স্ক্রিপ্ট
এই নমুনাটি চালানোর জন্য, SPACE_NAME জায়গায় স্পেসটির name ফিল্ড থেকে পাওয়া ID-টি বসান। আপনি ListSpaces() মেথড কল করে অথবা স্পেসটির URL থেকে ID-টি পেতে পারেন।
বার্তার নীচে ইন্টারেক্টিভ উইজেট যোগ করুন
এই গাইডের প্রথম কোড স্যাম্পলটিতে, চ্যাট অ্যাপের মেসেজের একেবারে নিচে একটি ক্লিকযোগ্য বাটন দেখানো হয়েছে, যা অ্যাক্সেসরি উইজেট নামে পরিচিত। একটি মেসেজে যেকোনো টেক্সট বা কার্ডের পরে অ্যাক্সেসরি উইজেটগুলো দেখা যায়। ব্যবহারকারীদের আপনার মেসেজের সাথে বিভিন্ন উপায়ে ইন্টারঅ্যাক্ট করতে উৎসাহিত করার জন্য আপনি এই উইজেটগুলো ব্যবহার করতে পারেন, যার মধ্যে নিম্নলিখিতগুলো অন্তর্ভুক্ত:
- কোনো বার্তার নির্ভুলতা বা সন্তুষ্টির মূল্যায়ন করুন।
- মেসেজ বা চ্যাট অ্যাপে কোনো সমস্যা হলে জানান।
- ডকুমেন্টেশনের মতো সম্পর্কিত কন্টেন্টের একটি লিঙ্ক খুলুন।
- চ্যাট অ্যাপ থেকে আসা একই ধরনের মেসেজ একটি নির্দিষ্ট সময়ের জন্য খারিজ করুন বা স্থগিত রাখুন।
অ্যাক্সেসরি উইজেট যোগ করতে, আপনার রিকোয়েস্টের বডিতে accessoryWidgets[] ফিল্ডটি অন্তর্ভুক্ত করুন এবং আপনি যে এক বা একাধিক উইজেট যোগ করতে চান তা নির্দিষ্ট করুন।
নিচের ছবিতে এমন একটি চ্যাট অ্যাপ দেখানো হয়েছে, যা একটি টেক্সট মেসেজের সাথে বিভিন্ন আনুষঙ্গিক উইজেট যুক্ত করে, যাতে ব্যবহারকারীরা চ্যাট অ্যাপটি ব্যবহারের অভিজ্ঞতা মূল্যায়ন করতে পারেন।

নিম্নলিখিত অংশে এমন একটি রিকোয়েস্টের বডি দেখানো হয়েছে যা দুটি অ্যাক্সেসরি বাটনসহ একটি টেক্সট মেসেজ তৈরি করে। যখন কোনো ব্যবহারকারী একটি বাটনে ক্লিক করেন, তখন সংশ্লিষ্ট ফাংশনটি (যেমন doUpvote ) সেই ইন্টারঅ্যাকশনটি প্রসেস করে:
{
text: "Rate your experience with this Chat app.",
accessoryWidgets: [{ buttonList: { buttons: [{
icon: { material_icon: {
name: "thumb_up"
}},
color: { red: 0, blue: 255, green: 0 },
onClick: { action: {
function: "doUpvote"
}}
}, {
icon: { material_icon: {
name: "thumb_down"
}},
color: { red: 0, blue: 255, green: 0 },
onClick: { action: {
function: "doDownvote"
}}
}]}}]
}
ব্যক্তিগতভাবে একটি বার্তা পাঠান
চ্যাট অ্যাপগুলো ব্যক্তিগতভাবে বার্তা পাঠাতে পারে, যাতে বার্তাটি শুধুমাত্র ওই প্ল্যাটফর্মের একজন নির্দিষ্ট ব্যবহারকারীই দেখতে পান। যখন কোনো চ্যাট অ্যাপ একটি ব্যক্তিগত বার্তা পাঠায়, তখন বার্তাটিতে একটি লেবেল দেখানো হয় যা ব্যবহারকারীকে জানিয়ে দেয় যে বার্তাটি শুধুমাত্র তিনিই দেখতে পাবেন।
চ্যাট এপিআই ব্যবহার করে ব্যক্তিগতভাবে বার্তা পাঠাতে, আপনার অনুরোধের বডিতে privateMessageViewer ফিল্ডটি উল্লেখ করুন। ব্যবহারকারীকে নির্দিষ্ট করতে, চ্যাট ব্যবহারকারীকে প্রতিনিধিত্বকারী User রিসোর্সের ভ্যালুটি সেট করুন। এছাড়াও আপনি User রিসোর্সের name ফিল্ডটি ব্যবহার করতে পারেন, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:
{
text: "Hello private world!",
privateMessageViewer: {
name: "users/USER_ID"
}
}
এই নমুনাটি ব্যবহার করতে, USER_ID জায়গায় ব্যবহারকারীর একটি অনন্য আইডি বসান, যেমন 12345678987654321 বা hao@cymbalgroup.com । ব্যবহারকারী নির্দিষ্ট করার বিষয়ে আরও তথ্যের জন্য, “Google Chat ব্যবহারকারীদের শনাক্ত ও নির্দিষ্ট করুন” দেখুন।
ব্যক্তিগতভাবে বার্তা পাঠাতে হলে, আপনার অনুরোধে নিম্নলিখিত বিষয়গুলো বাদ দিতে হবে:
বাধ্যতামূলক বিজ্ঞপ্তি বা নীরব বার্তা পাঠান
যখন কোনো চ্যাট অ্যাপ বার্তা পাঠায়, তখন ব্যবহারকারীদের অবহিত করার জন্য এটি এই বিকল্পগুলোর মধ্যে একটি ব্যবহার করতে পারে:
- নোটিফিকেশন বাধ্যতামূলক করুন : প্রাপকদের নোটিফিকেশন সেটিংস বা ডু নট ডিস্টার্ব (DND) স্ট্যাটাস নির্বিশেষে, চ্যাট সর্বদা তাদের কাছে একটি পুশ নোটিফিকেশন পাঠায়। চ্যাটের ভেতরে, এই মেসেজটি প্রাপকদের রোস্টার বা হোম লিস্টে বোল্ড ও বাম্প হয়ে যায় এবং একটি ব্যাজ দেখায়।
- একটি সাইলেন্ট মেসেজ পাঠান : চ্যাট প্রাপকদের জন্য পুশ নোটিফিকেশন বন্ধ করে দেয়। চ্যাটের ভেতরে, এই মেসেজটি প্রাপকদের রোস্টার বা হোম লিস্টে বোল্ড বা বাম্প হয় না এবং কোনো ব্যাজও দেখায় না। যদি সাইলেন্ট মেসেজটি কোনো কথোপকথনের শেষ মেসেজ হয়, তবে এর বিষয়বস্তু হোম স্নিপেটে দেখানো হয় না।
বাধ্যতামূলক হোক বা নীরব, এই বার্তাগুলিতে একটি দৃশ্যমান নির্দেশক থাকে যা প্রাপকদের বিশেষ নোটিফিকেশন আচরণ সম্পর্কে অবহিত করে।
বাধ্যতামূলক নোটিফিকেশন এবং সাইলেন্ট মেসেজ শুধুমাত্র অ্যাপ অথেন্টিকেশন ব্যবহারকারী চ্যাট অ্যাপগুলোর জন্যই উপলব্ধ।
বাধ্যতামূলক বিজ্ঞপ্তি এবং নীরব বার্তাগুলির এই সীমাবদ্ধতাগুলি রয়েছে:
- বহিরাগত ব্যবহারকারী : একটি স্পেসের বহিরাগত ব্যবহারকারীদের (অতিথি) ক্ষেত্রে বাধ্যতামূলক নোটিফিকেশন এবং সাইলেন্ট মেসেজ প্রযোজ্য নয়। বহিরাগত ব্যবহারকারীরা তাদের নিজস্ব সেটিংস অনুযায়ী নোটিফিকেশন পেয়ে থাকেন।
- মেনশন : সাইলেন্ট মেসেজে ব্যবহারকারীদের মেনশন করা যায় না। আপনি যদি কোনো সাইলেন্ট মেসেজে মেনশন অন্তর্ভুক্ত করেন, তবে তা সাধারণ টেক্সট হিসেবে গণ্য হয়।
- থ্রেডিং : আপনি সাইলেন্ট মেসেজ দিয়ে কোনো থ্রেড শুরু করতে বা তাতে উত্তর দিতে পারবেন না।
- স্পেসের ধরণ : ডাইরেক্ট মেসেজ (DM) বা যাদের গুগল ওয়ার্কস্পেস অ্যাকাউন্ট নেই, তাদের মালিকানাধীন স্পেসে বাধ্যতামূলক নোটিফিকেশন এবং সাইলেন্ট মেসেজ সমর্থিত নয়।
- ইমেল নোটিফিকেশন : সাইলেন্ট মেসেজ ইমেল নোটিফিকেশন পাঠায় না। ফোর্স-নোটিফাইড মেসেজ শুধুমাত্র তখনই ইমেল নোটিফিকেশন পাঠায়, যদি সেগুলিতে কোনো নির্দিষ্ট ব্যবহারকারীকে মেনশন করা থাকে।
বাধ্যতামূলকভাবে নোটিফিকেশন পাঠাতে বা নীরব বার্তা পাঠাতে, আপনার অনুরোধে createMessageNotificationOptions ফিল্ডটি অন্তর্ভুক্ত করুন এবং notificationType নিম্নলিখিতগুলির মধ্যে একটিতে সেট করুন:
| মূল্য | আচরণ |
|---|---|
NOTIFICATION_TYPE_FORCE_NOTIFY | বিজ্ঞপ্তি প্রদর্শনে বাধ্য করে। |
NOTIFICATION_TYPE_SILENT | নীরবে বার্তা পাঠায়। |
নিম্নলিখিত উদাহরণটি একটি বাধ্যতামূলক নোটিফিকেশন সহ বার্তা পাঠানোর অনুরোধের JSON বডি দেখাচ্ছে:
{
"text": "Critical update: the server is down!",
"createMessageNotificationOptions": {
"notificationType": "NOTIFICATION_TYPE_FORCE_NOTIFY"
}
}
একজন ব্যবহারকারীর পক্ষ থেকে একটি টেক্সট মেসেজ পাঠান
এই বিভাগে ইউজার অথেন্টিকেশন ব্যবহার করে কোনো ব্যবহারকারীর পক্ষ থেকে কীভাবে মেসেজ পাঠাতে হয়, তা ব্যাখ্যা করা হয়েছে। ইউজার অথেন্টিকেশনের ক্ষেত্রে, মেসেজের বিষয়বস্তুতে শুধুমাত্র টেক্সট থাকতে পারে এবং চ্যাট অ্যাপে উপলব্ধ মেসেজিং ফিচারগুলো, যেমন কার্ড ইন্টারফেস এবং ইন্টারেক্টিভ উইজেট, অবশ্যই বাদ রাখতে হবে। ডেভেলপার প্রিভিউতে , আপনি কোনো ব্যবহারকারীর পক্ষ থেকে কার্ডসহ মেসেজ তৈরি করতে পারেন। বিস্তারিত জানতে, ‘কার্ড তৈরি এবং আপডেট করুন’ দেখুন।
ব্যবহারকারী প্রমাণীকরণ ব্যবহার করে CreateMessage() মেথডটি কল করতে হলে, আপনাকে রিকোয়েস্টে নিম্নলিখিত ফিল্ডগুলো অবশ্যই উল্লেখ করতে হবে:
- একটি অনুমোদন স্কোপ যা এই পদ্ধতির জন্য ব্যবহারকারী প্রমাণীকরণ সমর্থন করে। নিম্নলিখিত নমুনাটি
chat.messages.createস্কোপ ব্যবহার করে। - যে
Spaceরিসোর্সে আপনি বার্তাটি পোস্ট করতে চান। প্রমাণীকৃত ব্যবহারকারীকে অবশ্যই স্পেসটির সদস্য হতে হবে। - তৈরি করার জন্য
Messageরিসোর্স। মেসেজের বিষয়বস্তু নির্ধারণ করতে, আপনাকে অবশ্যইtextফিল্ড অন্তর্ভুক্ত করতে হবে।
ঐচ্ছিকভাবে, আপনি নিম্নলিখিত বিষয়গুলো অন্তর্ভুক্ত করতে পারেন:
- নোটিফিকেশন জোর করে পাঠানোর জন্য অথবা বার্তাটি নীরবে পাঠানোর জন্য
createMessageNotificationOptionsফিল্ডটি ব্যবহার করা হয়। -
messageIdফিল্ডটি আপনাকে অন্যান্য API অনুরোধে ব্যবহার করার জন্য মেসেজটির নাম দেওয়ার সুযোগ দেয়। - একটি থ্রেড শুরু করতে বা তার উত্তর দিতে
thread.threadKeyএবংmessageReplyOptionফিল্ড ব্যবহৃত হয়। যদি স্পেসটি থ্রেডিং ব্যবহার না করে, তবে এই ফিল্ডটি উপেক্ষা করা হয়।
নিম্নলিখিত কোডটিতে দেখানো হয়েছে, কীভাবে একটি চ্যাট অ্যাপ কোনো প্রমাণীকৃত ব্যবহারকারীর পক্ষ থেকে একটি নির্দিষ্ট স্পেসে টেক্সট মেসেজ পাঠাতে পারে:
নোড.জেএস
পাইথন
জাভা
অ্যাপস স্ক্রিপ্ট
এই নমুনাটি চালানোর জন্য, SPACE_NAME জায়গায় স্পেসটির name ফিল্ড থেকে পাওয়া ID-টি বসান। আপনি ListSpaces() মেথড কল করে অথবা স্পেসটির URL থেকে ID-টি পেতে পারেন।
একটি থ্রেডে শুরু করুন বা উত্তর দিন
যেসব স্পেসে থ্রেড ব্যবহার করা হয়, সেখানে আপনি নির্দিষ্ট করে দিতে পারেন যে একটি নতুন মেসেজ একটি থ্রেড শুরু করবে, নাকি কোনো বিদ্যমান থ্রেডের উত্তর দেবে।
ডিফল্টরূপে, চ্যাট এপিআই ব্যবহার করে আপনার তৈরি করা মেসেজগুলো একটি নতুন থ্রেড শুরু করে। থ্রেডটি শনাক্ত করতে এবং পরে তাতে উত্তর দেওয়ার জন্য, আপনি আপনার অনুরোধে একটি থ্রেড কী নির্দিষ্ট করতে পারেন:
- আপনার অনুরোধের মূল অংশে
thread.threadKeyফিল্ডটি উল্লেখ করুন। - কী-টি আগে থেকেই বিদ্যমান থাকলে কী ঘটবে তা নির্ধারণ করতে
messageReplyOptionকোয়েরি প্যারামিটারটি নির্দিষ্ট করুন।
বিদ্যমান কোনো থ্রেডের উত্তরে একটি বার্তা তৈরি করতে:
- আপনার অনুরোধের মূল অংশে
threadফিল্ডটি অন্তর্ভুক্ত করুন। যদি সেট করা থাকে, তাহলে আপনি আপনার তৈরি করাthreadKey) নির্দিষ্ট করতে পারেন। অন্যথায়, আপনাকে অবশ্যই থ্রেডেরnameব্যবহার করতে হবে। -
messageReplyOptionকোয়েরি প্যারামিটারটি নির্দিষ্ট করুন।
নিম্নলিখিত কোডটিতে একটি উদাহরণ দেখানো হয়েছে, যেখানে একটি চ্যাট অ্যাপ একজন প্রমাণীকৃত ব্যবহারকারীর পক্ষ থেকে একটি নির্দিষ্ট স্পেসের কী (key) দ্বারা চিহ্নিত কোনো থ্রেড শুরু করতে বা তার উত্তর দিতে একটি টেক্সট মেসেজ পাঠাতে পারে:
নোড.জেএস
পাইথন
জাভা
অ্যাপস স্ক্রিপ্ট
এই নমুনাটি চালানোর জন্য, নিম্নলিখিতগুলি প্রতিস্থাপন করুন:
-
THREAD_KEY: স্পেসটিতে বিদ্যমান একটি থ্রেড কী, অথবা নতুন থ্রেড তৈরি করার জন্য থ্রেডটির একটি অনন্য নাম। -
SPACE_NAME: স্পেসটিরnameফিল্ড থেকে প্রাপ্ত আইডি। আপনিListSpaces()মেথড কল করে অথবা স্পেসটির URL থেকে আইডিটি পেতে পারেন।
একটি বার্তার নাম দিন
ভবিষ্যতের এপিআই কলে কোনো মেসেজ পুনরুদ্ধার বা নির্দিষ্ট করার জন্য, আপনি আপনার রিকোয়েস্টের messageId ফিল্ডে একটি মেসেজের নামকরণ করতে পারেন। মেসেজের নামকরণ করলে, মেসেজের রিসোর্স নেম (যা name ফিল্ডে থাকে) থেকে সিস্টেম-নির্ধারিত আইডি সংরক্ষণ করার প্রয়োজন হয় না, এবং এর মাধ্যমেই মেসেজটি নির্দিষ্ট করা যায়।
উদাহরণস্বরূপ, get() মেথড ব্যবহার করে একটি মেসেজ পুনরুদ্ধার করতে, আপনি কোন মেসেজটি পুনরুদ্ধার করবেন তা নির্দিষ্ট করার জন্য রিসোর্স নামটি ব্যবহার করেন। রিসোর্স নামটি spaces/{space}/messages/{message} আকারে থাকে, যেখানে {message} হলো সিস্টেম-নির্ধারিত আইডি অথবা মেসেজটি তৈরি করার সময় আপনার সেট করা কাস্টম নাম।
মেসেজের নামকরণ করতে, মেসেজ তৈরি করার সময় messageId ফিল্ডে একটি কাস্টম আইডি উল্লেখ করুন। messageId ফিল্ডটি Message রিসোর্সের clientAssignedMessageId ফিল্ডের মান নির্ধারণ করে।
আপনি শুধুমাত্র মেসেজ তৈরি করার সময়ই সেটির নাম দিতে পারবেন। বিদ্যমান মেসেজের জন্য আপনি কোনো কাস্টম আইডি-র নাম দিতে বা তা পরিবর্তন করতে পারবেন না। কাস্টম আইডি-টিকে অবশ্যই নিম্নলিখিত শর্তগুলো পূরণ করতে হবে:
-
client-দিয়ে শুরু হয়। উদাহরণস্বরূপ,client-custom-nameএকটি বৈধ কাস্টম আইডি, কিন্তুcustom-nameনয়। - এতে সর্বাধিক ৬৩টি অক্ষর এবং শুধুমাত্র ছোট হাতের অক্ষর, সংখ্যা ও হাইফেন থাকতে পারে।
- একটি পরিসরের মধ্যে এটি অনন্য। একটি চ্যাট অ্যাপ বিভিন্ন বার্তার জন্য একই কাস্টম আইডি ব্যবহার করতে পারে না।
নিম্নলিখিত কোডটিতে দেখানো হয়েছে, কীভাবে একটি চ্যাট অ্যাপ কোনো প্রমাণীকৃত ব্যবহারকারীর পক্ষ থেকে একটি আইডি সহ কোনো নির্দিষ্ট স্পেসে টেক্সট মেসেজ পাঠাতে পারে:
নোড.জেএস
পাইথন
জাভা
অ্যাপস স্ক্রিপ্ট
এই নমুনাটি চালানোর জন্য, নিম্নলিখিতগুলি প্রতিস্থাপন করুন:
-
SPACE_NAME: স্পেসটিরnameফিল্ড থেকে প্রাপ্ত আইডি। আপনিListSpaces()মেথড কল করে অথবা স্পেসটির URL থেকে আইডিটি পেতে পারেন। -
MESSAGE-ID: মেসেজের একটি নাম যাcustom-দিয়ে শুরু হয়। নির্দিষ্ট স্থানে চ্যাট অ্যাপ দ্বারা তৈরি অন্য যেকোনো মেসেজের নাম থেকে এটি অবশ্যই অনন্য হতে হবে।
একটি বার্তা উদ্ধৃত করুন
আপনি CreateMessage() ( rpc , rest ) কল করে এবং অনুরোধে quotedMessageMetadata ( rpc , rest ) সেট করে অন্য একটি বার্তা উদ্ধৃত করতে পারেন।
আপনি একটি থ্রেডের মধ্যে বা মূল চ্যাটে বার্তা উদ্ধৃত করতে পারেন, কিন্তু অন্য কোনো থ্রেডের বার্তা উদ্ধৃত করতে পারবেন না।
নিম্নলিখিত কোডটি দেখায় কিভাবে এমন একটি বার্তা তৈরি করতে হয় যা অন্য একটি বার্তাকে উদ্ধৃত করে:
নোড.জেএস
import {createClientWithUserCredentials} from './authentication-utils.js';
const USER_AUTH_OAUTH_SCOPES = ['https://www.googleapis.com/auth/chat.messages.create'];
// This sample shows how to create a message that quotes another message.
async function main() {
// Create a client
const chatClient = await createClientWithUserCredentials(USER_AUTH_OAUTH_SCOPES);
// Initialize request argument(s)
const request = {
// TODO(developer): Replace SPACE_NAME .
parent: 'spaces/SPACE_NAME',
message: {
text: 'I am responding to a quoted message!',
// quotedMessageMetadata lets Chat apps respond to a message by quoting it.
quotedMessageMetadata: {
// TODO(developer): Replace QUOTED_MESSAGE_NAME
// and QUOTED_MESSAGE_LAST_UPDATE_TIME.
name: 'QUOTED_MESSAGE_NAME',
lastUpdateTime: 'QUOTED_MESSAGE_LAST_UPDATE_TIME'
}
}
};
// Make the request
const response = await chatClient.createMessage(request);
// Handle the response
console.log(response);
}
main().catch(console.error);
পাইথন
from authentication_utils import create_client_with_user_credentials
from google.apps import chat_v1 as google_chat
from google.protobuf.timestamp_pb2 import Timestamp
SCOPES = ['https://www.googleapis.com/auth/chat.messages.create']
# This sample shows how to create a message that quotes another message.
def create_message_quote_message():
'''Creates a message that quotes another message.'''
# Create a client
client = create_client_with_user_credentials(SCOPES)
# Create a timestamp from the RFC-3339 string.
# TODO(developer): Replace QUOTED_MESSAGE_LAST_UPDATE_TIME.
last_update_time = Timestamp()
last_update_time.FromJsonString('QUOTED_MESSAGE_LAST_UPDATE_TIME')
# Initialize request argument(s)
request = google_chat.CreateMessageRequest(
# TODO(developer): Replace SPACE_NAME.
parent='spaces/SPACE_NAME',
# Create the message.
message = google_chat.Message(
text='I am responding to a quoted message!',
# quotedMessageMetadata lets Chat apps respond to a message by quoting it.
quoted_message_metadata=google_chat.QuotedMessageMetadata(
name='QUOTED_MESSAGE_NAME',
last_update_time=last_update_time
)
)
)
# Make the request
response = client.create_message(request)
# Handle the response
print(response)
create_message_quote_message()
জাভা
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.CreateMessageRequest;
import com.google.chat.v1.Message;
import com.google.chat.v1.QuotedMessageMetadata;
import com.google.protobuf.util.Timestamps;
import com.google.workspace.api.chat.samples.utils.AuthenticationUtils;
import java.text.ParseException;
// This sample shows how to create a message that quotes another message.
public class CreateMessageQuoteMessage {
public static void main(String[] args) throws Exception, ParseException {
// Create a client.
ChatServiceClient chatClient = AuthenticationUtils.createClientWithUserCredentials();
// Initialize request argument(s).
// TODO(developer): Replace SPACE_NAME, QUOTED_MESSAGE_NAME,
// and QUOTED_MESSAGE_LAST_UPDATE_TIME here.
String parent = "spaces/SPACE_NAME";
String quotedMessageName = "QUOTED_MESSAGE_NAME";
String lastUpdateTime = "QUOTED_MESSAGE_LAST_UPDATE_TIME";
QuotedMessageMetadata quotedMessageMetadata =
QuotedMessageMetadata.newBuilder()
.setName(quotedMessageName)
.setLastUpdateTime(Timestamps.parse(lastUpdateTime))
.build();
Message message = Message.newBuilder()
.setText("I am responding to a quoted message!")
.setQuotedMessageMetadata(quotedMessageMetadata)
.build();
CreateMessageRequest request =
CreateMessageRequest.newBuilder()
.setParent(parent)
.setMessage(message)
.build();
// Make the request.
Message response = chatClient.createMessage(request);
// Handle the response.
System.out.println(response);
}
}
অ্যাপস স্ক্রিপ্ট
/**
* Creates a message that quotes another message.
*
* Relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.messages.create'
* referenced in the manifest file (appsscript.json).
*/
function createMessageQuoteMessage() {
// Initialize request argument(s)
// TODO(developer): Replace SPACE_NAME here.
const parent = 'spaces/SPACE_NAME';
const message = {
// The text content of the message.
text: 'I am responding to a quoted message!',
// quotedMessageMetadata lets Chat apps respond to a message by quoting it.
//
// TODO(developer): Replace QUOTED_MESSAGE_NAME
// and QUOTED_MESSAGE_LAST_UPDATE_TIME .
quotedMessageMetadata: {
name: 'QUOTED_MESSAGE_NAME',
lastUpdateTime: 'QUOTED_MESSAGE_LAST_UPDATE_TIME',
}
};
// Make the request
const response = Chat.Spaces.Messages.create(message, parent);
// Handle the response
console.log(response);
}
এই নমুনাটি চালানোর জন্য, নিম্নলিখিতগুলি প্রতিস্থাপন করুন:
-
SPACE_NAME: স্পেসেরnameফিল্ড থেকে প্রাপ্ত আইডি। আপনিListSpaces()(rpc,rest) মেথড কল করে অথবা স্পেসের URL থেকে আইডিটি পেতে পারেন। -
QUOTED_MESSAGE_NAME: যে বার্তাটিকে উদ্ধৃত করতে হবে তার বার্তা রিসোর্সেরname(rpc,rest)spaces/{space}/messages/{message}ফরম্যাটে থাকবে। -
QUOTED_MESSAGE_LAST_UPDATE_TIME: যে মেসেজটি আপনি উদ্ধৃত করতে চান তার সর্বশেষ আপডেটের সময়। যদি মেসেজটি কখনও সম্পাদনা করা না হয়ে থাকে, তবে এটিcreateTime(rpc,rest)-এর সাথে সঙ্গতিপূর্ণ। যদি মেসেজটি সম্পাদনা করা হয়ে থাকে, তবে এটিlastUpdateTime(rpc,rest)-এর সাথে সঙ্গতিপূর্ণ।
সমস্যা সমাধান
যখন কোনো গুগল চ্যাট অ্যাপ বা কার্ডে ত্রুটি দেখা দেয়, তখন চ্যাট ইন্টারফেসে "কিছু একটা ভুল হয়েছে" বা "আপনার অনুরোধটি প্রক্রিয়া করা সম্ভব হয়নি" লেখা একটি বার্তা প্রদর্শিত হয়। কখনও কখনও চ্যাট UI কোনো ত্রুটির বার্তা প্রদর্শন করে না, কিন্তু চ্যাট অ্যাপ বা কার্ডটি একটি অপ্রত্যাশিত ফলাফল দেয়; উদাহরণস্বরূপ, কার্ডের বার্তাটি হয়তো দেখা যায় না।
যদিও চ্যাট UI-তে কোনো ত্রুটির বার্তা প্রদর্শিত নাও হতে পারে, চ্যাট অ্যাপের জন্য ত্রুটি লগিং চালু থাকলে, ত্রুটিগুলি সমাধান করতে সাহায্য করার জন্য বর্ণনামূলক ত্রুটির বার্তা এবং লগ ডেটা উপলব্ধ থাকে। ত্রুটি দেখা, ডিবাগ করা এবং সমাধান করার জন্য, "গুগল চ্যাটের ত্রুটি সমাধান ও প্রতিকার" দেখুন।
সম্পর্কিত বিষয়
- চ্যাট অ্যাপের জন্য JSON কার্ড মেসেজ ডিজাইন ও প্রিভিউ করতে কার্ড বিল্ডার ব্যবহার করুন ।
- বার্তাগুলো বিন্যাস করুন ।
- একটি বার্তা সম্পর্কে বিস্তারিত জানুন ।
- একটি স্পেসে বার্তাগুলির তালিকা তৈরি করুন ।
- একটি বার্তা হালনাগাদ করুন ।
- একটি বার্তা মুছে ফেলুন ।
- গুগল চ্যাট বার্তায় ব্যবহারকারীদের শনাক্ত করুন ।
- ইনকামিং ওয়েবহুক ব্যবহার করে গুগল চ্যাটে বার্তা পাঠান ।