এই পৃষ্ঠায় বর্ণনা করা হয়েছে কীভাবে বাহ্যিক ট্রিগার ব্যবহার করে একটি চ্যাট স্পেসে অ্যাসিঙ্ক্রোনাস বার্তা পাঠানোর জন্য একটি ওয়েবহুক সেট আপ করতে হয়। উদাহরণস্বরূপ, কোনো সার্ভার ডাউন হয়ে গেলে চ্যাটে অন-কল কর্মীদের অবহিত করার জন্য আপনি একটি মনিটরিং অ্যাপ্লিকেশন কনফিগার করতে পারেন। একটি চ্যাট অ্যাপের মাধ্যমে সিঙ্ক্রোনাস বার্তা পাঠাতে, " একটি বার্তা পাঠান" দেখুন।
এই ধরনের আর্কিটেকচার ডিজাইনের মাধ্যমে ব্যবহারকারীরা ওয়েবহুক বা সংযুক্ত বাহ্যিক অ্যাপ্লিকেশনের সাথে ইন্টারঅ্যাক্ট করতে পারে না, কারণ যোগাযোগ একমুখী হয়। ওয়েবহুক কথোপকথনমূলক নয়। এটি ব্যবহারকারীদের কাছ থেকে বার্তা বা চ্যাট অ্যাপের ইন্টারঅ্যাকশন ইভেন্টের উত্তর দিতে বা গ্রহণ করতে পারে না। বার্তার উত্তর দেওয়ার জন্য, ওয়েবহুকের পরিবর্তে একটি চ্যাট অ্যাপ তৈরি করুন ।
যদিও একটি ওয়েবহুক প্রযুক্তিগতভাবে কোনো চ্যাট অ্যাপ নয়—ওয়েবহুক সাধারণ HTTP অনুরোধ ব্যবহার করে অ্যাপ্লিকেশনগুলোকে সংযুক্ত করে—এই পৃষ্ঠায় সরলীকরণের জন্য এটিকে একটি চ্যাট অ্যাপ হিসেবে উল্লেখ করা হয়েছে। প্রতিটি ওয়েবহুক শুধুমাত্র সেই চ্যাট স্পেসেই কাজ করে যেখানে এটি নিবন্ধিত। ইনকামিং ওয়েবহুক সরাসরি মেসেজে কাজ করে, কিন্তু শুধুমাত্র তখনই যখন সকল ব্যবহারকারীর চ্যাট অ্যাপ সক্রিয় থাকে। আপনি গুগল ওয়ার্কস্পেস মার্কেটপ্লেসে ওয়েবহুক প্রকাশ করতে পারবেন না।
নিম্নলিখিত ডায়াগ্রামটি চ্যাটের সাথে সংযুক্ত একটি ওয়েবহুকের গঠন দেখায়:
পূর্ববর্তী ডায়াগ্রামে, একটি চ্যাট অ্যাপে তথ্যের নিম্নলিখিত প্রবাহ রয়েছে:
- চ্যাট অ্যাপের লজিকটি প্রজেক্ট ম্যানেজমেন্ট সিস্টেম বা টিকেটিং টুলের মতো বাহ্যিক তৃতীয় পক্ষের পরিষেবাগুলো থেকে তথ্য গ্রহণ করে।
- চ্যাট অ্যাপের লজিকটি ক্লাউড অথবা অন-প্রিমিসেস সিস্টেমে হোস্ট করা থাকে, যেখান থেকে একটি ওয়েবহুক ইউআরএল ব্যবহার করে নির্দিষ্ট চ্যাট স্পেসে মেসেজ পাঠানো যায়।
- ব্যবহারকারীরা সেই নির্দিষ্ট চ্যাট স্পেসে চ্যাট অ্যাপ থেকে বার্তা গ্রহণ করতে পারলেও, চ্যাট অ্যাপটির সাথে কোনো মিথস্ক্রিয়া করতে পারেন না।
পূর্বশর্ত
নোড.জেএস
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি বিজনেস বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট। আপনার গুগল ওয়ার্কস্পেস অর্গানাইজেশনে ব্যবহারকারীদের ইনকামিং ওয়েবহুক যোগ ও ব্যবহার করার অনুমতি থাকতে হবে।
- নোড.জেএস ১৪ বা তার বেশি
- এনপিএম প্যাকেজ ম্যানেজমেন্ট টুল
- একটি গুগল চ্যাট স্পেস। গুগল চ্যাট এপিআই ব্যবহার করে একটি তৈরি করতে, 'একটি স্পেস তৈরি করুন ' দেখুন। চ্যাটে একটি তৈরি করতে, হেল্প সেন্টার ডকুমেন্টেশন দেখুন।
পাইথন
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি বিজনেস বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট। আপনার গুগল ওয়ার্কস্পেস অর্গানাইজেশনে ব্যবহারকারীদের ইনকামিং ওয়েবহুক যোগ ও ব্যবহার করার অনুমতি থাকতে হবে।
- পাইথন ৩.৬ বা তার বেশি
- পিপ প্যাকেজ ম্যানেজমেন্ট টুল
httplib2লাইব্রেরি। লাইব্রেরিটি ইনস্টল করতে, আপনার কমান্ড-লাইন ইন্টারফেসে নিম্নলিখিত কমান্ডটি চালান:pip install httplib2একটি গুগল চ্যাট স্পেস। গুগল চ্যাট এপিআই ব্যবহার করে একটি তৈরি করতে, 'একটি স্পেস তৈরি করুন ' দেখুন। চ্যাটে একটি তৈরি করতে, হেল্প সেন্টার ডকুমেন্টেশন দেখুন।
জাভা
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি বিজনেস বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট। আপনার গুগল ওয়ার্কস্পেস অর্গানাইজেশনে ব্যবহারকারীদের ইনকামিং ওয়েবহুক যোগ ও ব্যবহার করার অনুমতি থাকতে হবে।
- জাভা ১১ বা তার বেশি
- মেভেন প্যাকেজ ম্যানেজমেন্ট টুল
- একটি গুগল চ্যাট স্পেস। গুগল চ্যাট এপিআই ব্যবহার করে একটি তৈরি করতে, 'একটি স্পেস তৈরি করুন ' দেখুন। চ্যাটে একটি তৈরি করতে, হেল্প সেন্টার ডকুমেন্টেশন দেখুন।
অ্যাপস স্ক্রিপ্ট
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি বিজনেস বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট। আপনার গুগল ওয়ার্কস্পেস অর্গানাইজেশনে ব্যবহারকারীদের ইনকামিং ওয়েবহুক যোগ ও ব্যবহার করার অনুমতি থাকতে হবে।
- একটি স্বতন্ত্র অ্যাপস স্ক্রিপ্ট প্রজেক্ট তৈরি করুন এবং অ্যাডভান্সড চ্যাট সার্ভিসটি চালু করুন।
- একটি গুগল চ্যাট স্পেস। গুগল চ্যাট এপিআই ব্যবহার করে একটি তৈরি করতে, 'একটি স্পেস তৈরি করুন ' দেখুন। চ্যাটে একটি তৈরি করতে, হেল্প সেন্টার ডকুমেন্টেশন দেখুন।
একটি ওয়েবহুক তৈরি করুন
একটি ওয়েবহুক তৈরি করতে, যে চ্যাট স্পেসে আপনি বার্তা গ্রহণ করতে চান সেখানে এটি নিবন্ধন করুন এবং তারপরে বার্তা পাঠানোর জন্য একটি স্ক্রিপ্ট লিখুন।
আগত ওয়েবহুক নিবন্ধন করুন
- ব্রাউজারে চ্যাট খুলুন। চ্যাট মোবাইল অ্যাপ থেকে ওয়েবহুক কনফিগার করা যায় না।
- যেখানে আপনি ওয়েবহুক যোগ করতে চান, সেই স্থানে যান।
- স্পেস টাইটেলের পাশে থাকা অ্যারোতে ক্লিক করুন এবং তারপরে অ্যাপস ও ইন্টিগ্রেশন-এ ক্লিক করুন।
ওয়েবহুক -এ ক্লিক করুন।
Name ফিল্ডে
Quickstart Webhookলিখুন।Avatar URL ফিল্ডে
https://developers.google.com/chat/images/chat-product-icon.pngলিখুন।সংরক্ষণ করুন- এ ক্লিক করুন।
ওয়েবহুক ইউআরএল কপি করতে, More-এ ক্লিক করুন এবং তারপর Copy link-এ ক্লিক করুন।
ওয়েবহুক ইউআরএল-এ দুটি প্যারামিটার থাকে:
key', যা ওয়েবহুকগুলোর মধ্যে ব্যবহৃত একটি সাধারণ মান, এবংtoken, যা একটি অনন্য মান এবং আপনার ওয়েবহুকের নিরাপত্তা রক্ষার জন্য এটিকে অবশ্যই গোপন রাখতে হবে।
ওয়েবহুক স্ক্রিপ্টটি লিখুন
উদাহরণ ওয়েবহুক স্ক্রিপ্টটি ওয়েবহুক ইউআরএল-এ একটি POST রিকোয়েস্ট পাঠানোর মাধ্যমে, যে স্পেসে ওয়েবহুকটি রেজিস্টার করা আছে সেখানে একটি মেসেজ পাঠায়। চ্যাট এপিআই এর জবাবে Message এর একটি ইনস্ট্যান্স পাঠায়।
ওয়েবহুক স্ক্রিপ্ট তৈরি করার পদ্ধতি শিখতে একটি ভাষা নির্বাচন করুন:
নোড.জেএস
আপনার ওয়ার্কিং ডিরেক্টরিতে
index.jsনামে একটি ফাইল তৈরি করুন।index.jsফাইলে নিচের কোডটি পেস্ট করুন:ওয়েবহুক নিবন্ধন করার সময় আপনি যে ওয়েবহুক URL-টি কপি করেছিলেন, সেটি দিয়ে
urlভেরিয়েবলের মানটি প্রতিস্থাপন করুন।
পাইথন
আপনার ওয়ার্কিং ডিরেক্টরিতে
quickstart.pyনামে একটি ফাইল তৈরি করুন।quickstart.pyফাইলে নিচের কোডটি পেস্ট করুন:ওয়েবহুক নিবন্ধন করার সময় আপনি যে ওয়েবহুক URL-টি কপি করেছিলেন, সেটি দিয়ে
urlভেরিয়েবলের মানটি প্রতিস্থাপন করুন।
জাভা
আপনার ওয়ার্কিং ডিরেক্টরিতে
pom.xmlনামে একটি ফাইল তৈরি করুন।pom.xmlফাইলে নিচের অংশটি কপি করে পেস্ট করুন:আপনার ওয়ার্কিং ডিরেক্টরিতে
src/main/javaএই ডিরেক্টরি কাঠামোটি তৈরি করুন।src/main/javaডিরেক্টরিতেApp.javaনামে একটি ফাইল তৈরি করুন।App.javaতে নিম্নলিখিত কোডটি পেস্ট করুন:ওয়েবহুক নিবন্ধন করার সময় আপনি যে ওয়েবহুক URL-টি কপি করেছিলেন, সেটি দিয়ে
URLভেরিয়েবলের মানটি প্রতিস্থাপন করুন।
অ্যাপস স্ক্রিপ্ট
ব্রাউজারে অ্যাপস স্ক্রিপ্ট- এ যান।
নতুন প্রকল্পে ক্লিক করুন
নিম্নলিখিত কোডটি পেস্ট করুন:
ওয়েবহুক নিবন্ধন করার সময় আপনি যে ওয়েবহুক URL-টি কপি করেছিলেন, সেটি দিয়ে
urlভেরিয়েবলের মানটি প্রতিস্থাপন করুন।
ওয়েবহুক স্ক্রিপ্টটি চালান
CLI-তে স্ক্রিপ্টটি চালান:
নোড.জেএস
node index.jsপাইথন
python3 quickstart.pyজাভা
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 প্যারামিটারটি পাস করলে, চ্যাট নির্দিষ্টthreadKeyব্যবহার করে একটি বিদ্যমান থ্রেড খোঁজে। যদি একটি খুঁজে পাওয়া যায়, তাহলে বার্তাটি সেই থ্রেডের উত্তর হিসাবে পোস্ট করা হয়। যদি কোনোটি খুঁজে না পাওয়া যায়, তাহলে বার্তাটি সেইthreadKeyএর সাথে সঙ্গতিপূর্ণ একটি নতুন থ্রেড শুরু করে।কোনো থ্রেডের উত্তর দিন অথবা কিছুই করবেন না। ওয়েবহুক URL-এ
messageReplyOption=REPLY_MESSAGE_OR_FAILপ্যারামিটারটি যোগ করুন। এই URL প্যারামিটারটি পাস করলে, Chat নির্দিষ্টthreadKeyব্যবহার করে একটি বিদ্যমান থ্রেড খোঁজে। যদি একটি থ্রেড খুঁজে পাওয়া যায়, তাহলে বার্তাটি সেই থ্রেডের উত্তর হিসেবে পোস্ট করা হয়। যদি কোনো থ্রেড খুঁজে না পাওয়া যায়, তাহলে বার্তাটি পাঠানো হয় না।
আরও জানতে,
messageReplyOptionদেখুন।
নিম্নলিখিত কোড নমুনাটি একটি মেসেজ থ্রেড শুরু করে বা তার উত্তর দেয়:
নোড.জেএস
পাইথন
জাভা
অ্যাপস স্ক্রিপ্ট
ত্রুটিগুলি পরিচালনা করুন
বিভিন্ন কারণে ওয়েবহুক অনুরোধ ব্যর্থ হতে পারে, যার মধ্যে রয়েছে:
- অবৈধ অনুরোধ।
- ওয়েবহুক অথবা ওয়েবহুকটি ধারণকারী স্থানটি মুছে ফেলা হয়েছে।
- মাঝে মাঝে নেটওয়ার্ক সংযোগ বা কোটার সীমাবদ্ধতার মতো সমস্যা দেখা দেয়।
আপনার ওয়েবহুক তৈরি করার সময়, নিম্নলিখিত উপায়ে ত্রুটিগুলি যথাযথভাবে সামাল দেওয়া উচিত:
- ব্যর্থতাটি নথিভুক্ত করা হচ্ছে।
- সময়-ভিত্তিক, কোটা-ভিত্তিক বা নেটওয়ার্ক সংযোগ ত্রুটির ক্ষেত্রে, এক্সপোনেনশিয়াল ব্যাকঅফ সহ অনুরোধটি পুনরায় চেষ্টা করা হয় ।
- কিছুই না করা, যা উপযুক্ত যদি ওয়েবহুক বার্তা পাঠানো গুরুত্বপূর্ণ না হয়।
গুগল চ্যাট এপিআই ত্রুটিগুলোকে google.rpc.Status হিসেবে ফেরত দেয়, যার মধ্যে একটি HTTP ত্রুটি code থাকে যা সম্মুখীন হওয়া ত্রুটির ধরন নির্দেশ করে: একটি ক্লায়েন্ট ত্রুটি (৪০০ সিরিজ) বা একটি সার্ভার ত্রুটি (৫০০ সিরিজ)। সমস্ত HTTP ম্যাপিং পর্যালোচনা করতে, google.rpc.Code দেখুন।
{
"code": 503,
"message": "The service is currently unavailable.",
"status": "UNAVAILABLE"
}
HTTP স্ট্যাটাস কোড কীভাবে ব্যাখ্যা করতে হয় এবং ত্রুটি কীভাবে সামলাতে হয়, তা জানতে Errors দেখুন।
সীমাবদ্ধতা এবং বিবেচ্য বিষয়
- গুগল চ্যাট এপিআই-তে ওয়েবহুক ব্যবহার করে মেসেজ তৈরি করার সময়, রেসপন্সে সম্পূর্ণ মেসেজটি থাকে না। রেসপন্সে শুধুমাত্র
nameএবংthread.nameফিল্ডগুলো পূরণ হয়। - ওয়েবহুকগুলো
spaces.messages.createএর জন্য প্রতি-স্পেস কোটার অধীন: প্রতি সেকেন্ডে ১টি অনুরোধ, যা স্পেসের সমস্ত ওয়েবহুকের মধ্যে ভাগ করে দেওয়া হয়। একই স্পেসে প্রতি সেকেন্ডে ১টির বেশি কোয়েরি করা ওয়েবহুক অনুরোধ চ্যাট প্রত্যাখ্যানও করতে পারে। চ্যাট এপিআই কোটা সম্পর্কে আরও তথ্যের জন্য, ব্যবহারের সীমা (Usage limits) দেখুন।