এই পৃষ্ঠাটি বর্ণনা করে যে কীভাবে একটি ওয়েবহুক সেট আপ করতে হয় যাতে এক্সটার্নাল ট্রিগার ব্যবহার করে চ্যাট স্পেসে অ্যাসিঙ্ক্রোনাস বার্তা পাঠানো যায়। উদাহরণস্বরূপ, আপনি একটি মনিটরিং অ্যাপ্লিকেশন কনফিগার করতে পারেন যা সার্ভার ডাউন হয়ে গেলে চ্যাটে অন-কল কর্মীদের অবহিত করবে। চ্যাট অ্যাপের মাধ্যমে একটি সিঙ্ক্রোনাস বার্তা পাঠাতে, একটি বার্তা পাঠান দেখুন।
এই ধরণের আর্কিটেকচার ডিজাইনের মাধ্যমে, ব্যবহারকারীরা ওয়েবহুক বা সংযুক্ত বহিরাগত অ্যাপ্লিকেশনের সাথে ইন্টারঅ্যাক্ট করতে পারবেন না কারণ যোগাযোগ একমুখী। ওয়েবহুকগুলি কথোপকথনমূলক নয়। তারা ব্যবহারকারীদের বার্তা বা চ্যাট অ্যাপ ইন্টারঅ্যাকশন ইভেন্টের প্রতিক্রিয়া জানাতে বা গ্রহণ করতে পারে না। বার্তাগুলির প্রতিক্রিয়া জানাতে, ওয়েবহুকের পরিবর্তে একটি চ্যাট অ্যাপ তৈরি করুন ।
যদিও ওয়েবহুক টেকনিক্যালি কোনও চ্যাট অ্যাপ নয়—ওয়েবহুকগুলি স্ট্যান্ডার্ড HTTP অনুরোধ ব্যবহার করে অ্যাপ্লিকেশনগুলিকে সংযুক্ত করে—এই পৃষ্ঠাটি সরলীকরণের জন্য এটিকে একটি চ্যাট অ্যাপ হিসাবে উল্লেখ করে। প্রতিটি ওয়েবহুক শুধুমাত্র সেই চ্যাট স্পেসে কাজ করে যেখানে এটি নিবন্ধিত। ইনকামিং ওয়েবহুকগুলি সরাসরি বার্তাগুলিতে কাজ করে, তবে শুধুমাত্র যখন সমস্ত ব্যবহারকারীর চ্যাট অ্যাপ সক্ষম থাকে। আপনি Google Workspace Marketplace-এ ওয়েবহুক প্রকাশ করতে পারবেন না।
নিম্নলিখিত চিত্রটি চ্যাটের সাথে সংযুক্ত একটি ওয়েবহুকের আর্কিটেকচার দেখায়:
পূর্ববর্তী চিত্রে, একটি চ্যাট অ্যাপে নিম্নলিখিত তথ্য প্রবাহ থাকে:
- চ্যাট অ্যাপ লজিক বহিরাগত তৃতীয় পক্ষের পরিষেবা, যেমন একটি প্রকল্প ব্যবস্থাপনা সিস্টেম বা টিকিটিং টুল থেকে তথ্য গ্রহণ করে।
- চ্যাট অ্যাপ লজিকটি ক্লাউড অথবা অন-প্রেমিসেস সিস্টেমে হোস্ট করা হয় যা একটি নির্দিষ্ট চ্যাট স্পেসে ওয়েবহুক URL ব্যবহার করে বার্তা পাঠাতে পারে।
- ব্যবহারকারীরা সেই নির্দিষ্ট চ্যাট স্পেসে চ্যাট অ্যাপ থেকে বার্তা গ্রহণ করতে পারবেন, কিন্তু চ্যাট অ্যাপের সাথে ইন্টারঅ্যাক্ট করতে পারবেন না।
পূর্বশর্ত
পাইথন
- গুগল চ্যাট অ্যাক্সেস সহ একটি ব্যবসা বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট। আপনার গুগল ওয়ার্কস্পেস প্রতিষ্ঠানকে অবশ্যই ব্যবহারকারীদের ইনকামিং ওয়েবহুক যোগ করতে এবং ব্যবহার করতে দিতে হবে।
- পাইথন ৩.৬ বা তার বেশি
- পিপ প্যাকেজ ম্যানেজমেন্ট টুল
httplib2লাইব্রেরি। লাইব্রেরিটি ইনস্টল করতে, আপনার কমান্ড-লাইন ইন্টারফেসে নিম্নলিখিত কমান্ডটি চালান:pip install httplib2একটি গুগল চ্যাট স্পেস। গুগল চ্যাট এপিআই ব্যবহার করে একটি স্পেস তৈরি করতে, "একটি স্পেস তৈরি করুন" দেখুন। চ্যাটে একটি স্পেস তৈরি করতে, সহায়তা কেন্দ্রের ডকুমেন্টেশন দেখুন।
নোড.জেএস
- গুগল চ্যাট অ্যাক্সেস সহ একটি ব্যবসা বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট। আপনার গুগল ওয়ার্কস্পেস প্রতিষ্ঠানকে অবশ্যই ব্যবহারকারীদের ইনকামিং ওয়েবহুক যোগ করতে এবং ব্যবহার করতে দিতে হবে।
- Node.js ১৪ বা তার বেশি
- npm প্যাকেজ ম্যানেজমেন্ট টুল
- একটি গুগল চ্যাট স্পেস। গুগল চ্যাট এপিআই ব্যবহার করে একটি স্পেস তৈরি করতে, "একটি স্পেস তৈরি করুন" দেখুন। চ্যাটে একটি স্পেস তৈরি করতে, সহায়তা কেন্দ্রের ডকুমেন্টেশন দেখুন।
জাভা
- গুগল চ্যাট অ্যাক্সেস সহ একটি ব্যবসা বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট। আপনার গুগল ওয়ার্কস্পেস প্রতিষ্ঠানকে অবশ্যই ব্যবহারকারীদের ইনকামিং ওয়েবহুক যোগ করতে এবং ব্যবহার করতে দিতে হবে।
- জাভা ১১ বা তার বেশি
- ম্যাভেন প্যাকেজ ম্যানেজমেন্ট টুল
- একটি গুগল চ্যাট স্পেস। গুগল চ্যাট এপিআই ব্যবহার করে একটি স্পেস তৈরি করতে, "একটি স্পেস তৈরি করুন" দেখুন। চ্যাটে একটি স্পেস তৈরি করতে, সহায়তা কেন্দ্রের ডকুমেন্টেশন দেখুন।
অ্যাপস স্ক্রিপ্ট
- গুগল চ্যাট অ্যাক্সেস সহ একটি ব্যবসা বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট। আপনার গুগল ওয়ার্কস্পেস প্রতিষ্ঠানকে অবশ্যই ব্যবহারকারীদের ইনকামিং ওয়েবহুক যোগ করতে এবং ব্যবহার করতে দিতে হবে।
- একটি স্বতন্ত্র অ্যাপস স্ক্রিপ্ট প্রকল্প তৈরি করুন এবং অ্যাডভান্সড চ্যাট পরিষেবা চালু করুন।
- একটি গুগল চ্যাট স্পেস। গুগল চ্যাট এপিআই ব্যবহার করে একটি স্পেস তৈরি করতে, "একটি স্পেস তৈরি করুন" দেখুন। চ্যাটে একটি স্পেস তৈরি করতে, সহায়তা কেন্দ্রের ডকুমেন্টেশন দেখুন।
একটি ওয়েবহুক তৈরি করুন
একটি ওয়েবহুক তৈরি করতে, আপনি যেখানে বার্তা গ্রহণ করতে চান সেই চ্যাট স্পেসে এটি নিবন্ধন করুন এবং তারপরে একটি স্ক্রিপ্ট লিখুন যা বার্তা পাঠায়।
আগত ওয়েবহুকটি নিবন্ধন করুন
- একটি ব্রাউজারে, Chat খুলুন। ওয়েবহুকগুলি Chat মোবাইল অ্যাপ থেকে কনফিগার করা যায় না।
- আপনি যেখানে একটি ওয়েবহুক যোগ করতে চান সেখানে যান।
- স্পেস টাইটেলের পাশে, expand more তীরটিতে ক্লিক করুন, এবং তারপরে Apps & integrations এ ক্লিক করুন।
"ওয়েবহুক যোগ করুন" ক্লিক করুন।
নাম ক্ষেত্রে,
Quickstart Webhookলিখুন।Avatar URL ক্ষেত্রে,
https://developers.google.com/chat/images/chat-product-icon.pngলিখুন।সংরক্ষণ করুন ক্লিক করুন।
ওয়েবহুক URL কপি করতে, More এ ক্লিক করুন, এবং তারপর Copy link এ ক্লিক করুন।
ওয়েবহুক URL-এ দুটি প্যারামিটার থাকে:
key, ওয়েবহুকগুলির মধ্যে ভাগ করা একটি সাধারণ মান, এবংtokenযা একটি অনন্য মান যা আপনার ওয়েবহুকের নিরাপত্তা রক্ষার জন্য গোপন রাখতে হবে।
ওয়েবহুক স্ক্রিপ্টটি লিখুন
ওয়েবহুক স্ক্রিপ্টের উদাহরণটি ওয়েবহুক URL-এ একটি POST অনুরোধ পাঠিয়ে ওয়েবহুক নিবন্ধিত স্থানে একটি বার্তা পাঠায়। চ্যাট API Message এর একটি উদাহরণ দিয়ে সাড়া দেয়।
ওয়েবহুক স্ক্রিপ্ট তৈরি করতে শেখার জন্য একটি ভাষা নির্বাচন করুন:
পাইথন
আপনার ওয়ার্কিং ডিরেক্টরিতে,
quickstart.pyনামে একটি ফাইল তৈরি করুন।quickstart.pyতে, নিম্নলিখিত কোডটি পেস্ট করুন:urlভেরিয়েবলের মানটি webhook URL দিয়ে প্রতিস্থাপন করুন যা আপনি webhook নিবন্ধন করার সময় কপি করেছিলেন।
নোড.জেএস
আপনার ওয়ার্কিং ডিরেক্টরিতে,
index.jsনামে একটি ফাইল তৈরি করুন।index.jsএ, নিম্নলিখিত কোডটি পেস্ট করুন:urlভেরিয়েবলের মানটি webhook URL দিয়ে প্রতিস্থাপন করুন যা আপনি webhook নিবন্ধন করার সময় কপি করেছিলেন।
জাভা
আপনার ওয়ার্কিং ডিরেক্টরিতে,
pom.xmlনামে একটি ফাইল তৈরি করুন।pom.xmlএ, নিম্নলিখিতটি কপি করে পেস্ট করুন:আপনার কার্যকরী ডিরেক্টরিতে, নিম্নলিখিত ডিরেক্টরি কাঠামো
src/main/javaতৈরি করুন।src/main/javaডিরেক্টরিতে,App.javaনামে একটি ফাইল তৈরি করুন।App.javaতে, নিম্নলিখিত কোডটি পেস্ট করুন:URLভেরিয়েবলের মানটি ওয়েবহুক URL দিয়ে প্রতিস্থাপন করুন যা আপনি ওয়েবহুক নিবন্ধনের সময় কপি করেছিলেন।
অ্যাপস স্ক্রিপ্ট
একটি ব্রাউজারে, Apps Script এ যান।
নতুন প্রকল্পে ক্লিক করুন
নিম্নলিখিত কোডটি পেস্ট করুন:
urlভেরিয়েবলের মানটি webhook URL দিয়ে প্রতিস্থাপন করুন যা আপনি webhook নিবন্ধন করার সময় কপি করেছিলেন।
ওয়েবহুক স্ক্রিপ্টটি চালান
একটি CLI-তে, স্ক্রিপ্টটি চালান:
পাইথন
python3 quickstart.pyনোড.জেএস
node index.jsজাভা
mvn compile exec:java -Dexec.mainClass=Appঅ্যাপস স্ক্রিপ্ট
- রান ক্লিক করুন।
যখন আপনি কোডটি চালান, তখন ওয়েবহুকটি আপনি যে স্থানে কোডটি নিবন্ধন করেছেন সেখানে একটি বার্তা পাঠায়।
একটি বার্তা থ্রেড শুরু করুন বা উত্তর দিন
মেসেজ রিকোয়েস্ট বডির অংশ হিসেবে
spaces.messages.thread.threadKeyউল্লেখ করুন। আপনি থ্রেড শুরু করছেন নাকি উত্তর দিচ্ছেন তার উপর নির্ভর করে,threadKeyজন্য নিম্নলিখিত মানগুলি ব্যবহার করুন:যদি আপনি একটি থ্রেড শুরু করেন,
threadKeyএকটি ইচ্ছামত স্ট্রিং এ সেট করুন, কিন্তু থ্রেডে একটি উত্তর পোস্ট করার জন্য এই মানটি মনে রাখবেন।যদি আপনি কোন থ্রেডে উত্তর দিচ্ছেন, তাহলে থ্রেড শুরু করার সময় যে
threadKeyসেট করা হয়েছিল তা উল্লেখ করুন। উদাহরণস্বরূপ, যে থ্রেডে প্রাথমিক বার্তায়MY-THREADব্যবহার করা হয়েছে সেখানে একটি উত্তর পোস্ট করতে,MY-THREADসেট করুন।
নির্দিষ্ট
threadKeyনা পাওয়া গেলে থ্রেড আচরণ নির্ধারণ করুন:একটি থ্রেডের উত্তর দিন অথবা একটি নতুন থ্রেড শুরু করুন। ওয়েবহুক URL-এ
messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREADপ্যারামিটার যোগ করুন। এই URL প্যারামিটারটি পাস করার ফলে Chat নির্দিষ্টthreadKeyব্যবহার করে একটি বিদ্যমান থ্রেড খুঁজবে। যদি একটি পাওয়া যায়, তাহলে বার্তাটি সেই থ্রেডের উত্তর হিসাবে পোস্ট হবে। যদি কোনওটি না পাওয়া যায়, তাহলে বার্তাটি সেইthreadKeyসাথে সম্পর্কিত একটি নতুন থ্রেড শুরু করবে।একটি থ্রেডের উত্তর দিন অথবা কিছুই করবেন না। ওয়েবহুক URL-এ
messageReplyOption=REPLY_MESSAGE_OR_FAILপ্যারামিটার যোগ করুন। এই URL প্যারামিটারটি পাস করলে Chat নির্দিষ্টthreadKeyব্যবহার করে একটি বিদ্যমান থ্রেড খুঁজবে। যদি একটি পাওয়া যায়, তাহলে বার্তাটি সেই থ্রেডের উত্তর হিসেবে পোস্ট হবে। যদি কোনওটি না পাওয়া যায়, তাহলে বার্তাটি পাঠানো হবে না।
আরও জানতে,
messageReplyOptionদেখুন।
নিম্নলিখিত কোড নমুনাটি একটি বার্তা থ্রেড শুরু করে বা উত্তর দেয়:
পাইথন
নোড.জেএস
অ্যাপস স্ক্রিপ্ট
ত্রুটিগুলি পরিচালনা করুন
ওয়েবহুক অনুরোধ বিভিন্ন কারণে ব্যর্থ হতে পারে, যার মধ্যে রয়েছে:
- অবৈধ অনুরোধ।
- ওয়েবহুক বা ওয়েবহুক হোস্টিং স্পেস মুছে ফেলা হবে।
- নেটওয়ার্ক সংযোগ বা কোটা সীমার মতো মাঝেমধ্যে সমস্যা।
আপনার ওয়েবহুক তৈরি করার সময়, আপনার ত্রুটিগুলি যথাযথভাবে পরিচালনা করা উচিত:
- ব্যর্থতা রেকর্ড করা হচ্ছে।
- সময়-ভিত্তিক, কোটা, অথবা নেটওয়ার্ক সংযোগ ত্রুটির জন্য, সূচকীয় ব্যাকঅফ দিয়ে অনুরোধটি পুনরায় চেষ্টা করুন ।
- কিছুই না করা, যা ওয়েবহুক বার্তা পাঠানো গুরুত্বপূর্ণ না হলে উপযুক্ত।
Google Chat API ত্রুটিগুলিকে google.rpc.Status হিসাবে ফেরত পাঠায়, যার মধ্যে একটি HTTP ত্রুটি code থাকে যা সম্মুখীন হওয়া ত্রুটির ধরণ নির্দেশ করে: একটি ক্লায়েন্ট ত্রুটি (400 সিরিজ) অথবা একটি সার্ভার ত্রুটি (500 সিরিজ)। সমস্ত HTTP ম্যাপিং পর্যালোচনা করতে, google.rpc.Code দেখুন।
{
"code": 503,
"message": "The service is currently unavailable.",
"status": "UNAVAILABLE"
}
HTTP স্ট্যাটাস কোডগুলি কীভাবে ব্যাখ্যা করতে হয় এবং ত্রুটিগুলি পরিচালনা করতে হয় তা শিখতে, ত্রুটিগুলি দেখুন।
সীমাবদ্ধতা এবং বিবেচনা
- Google Chat API-তে ওয়েবহুক ব্যবহার করে কোনও বার্তা তৈরি করার সময়, প্রতিক্রিয়াটিতে সম্পূর্ণ বার্তা থাকে না। প্রতিক্রিয়াটিতে কেবল
nameএবংthread.nameক্ষেত্রগুলি পূরণ করা হয়। - ওয়েবহুকগুলি
spaces.messages.createএর জন্য প্রতি-স্পেস কোটা সাপেক্ষে: স্পেসের সমস্ত ওয়েবহুকের মধ্যে ভাগ করা প্রতি সেকেন্ডে 1টি অনুরোধ। একই স্পেসে প্রতি সেকেন্ডে 1টি কোয়েরির বেশি হলে চ্যাট ওয়েবহুক অনুরোধ প্রত্যাখ্যান করতে পারে। চ্যাট API কোটা সম্পর্কে আরও তথ্যের জন্য, ব্যবহারের সীমা দেখুন।