এই পৃষ্ঠায় পাব/সাব (Pub/Sub) ব্যবহার করে কীভাবে একটি চ্যাট অ্যাপ তৈরি করতে হয় তা ব্যাখ্যা করা হয়েছে। চ্যাট অ্যাপের জন্য এই ধরনের আর্কিটেকচারটি উপযোগী হয় যদি আপনার প্রতিষ্ঠানে একটি ফায়ারওয়াল থাকে, যা চ্যাটকে আপনার চ্যাট অ্যাপে বার্তা পাঠাতে বাধা দিতে পারে, অথবা যদি চ্যাট অ্যাপটি গুগল ওয়ার্কস্পেস ইভেন্টস এপিআই (Google Workspace Events API ) ব্যবহার করে। তবে, এই আর্কিটেকচারের নিম্নলিখিত সীমাবদ্ধতা রয়েছে, কারণ এই চ্যাট অ্যাপগুলো শুধুমাত্র অ্যাসিঙ্ক্রোনাস বার্তা পাঠাতে এবং গ্রহণ করতে পারে:
- মেসেজে ডায়ালগ ব্যবহার করা যাবে না। এর পরিবর্তে কার্ড মেসেজ ব্যবহার করুন।
- সিঙ্ক্রোনাস রেসপন্স দিয়ে আলাদা আলাদা কার্ড আপডেট করা যায় না। এর পরিবর্তে,
patchমেথডটি কল করে সম্পূর্ণ মেসেজটি আপডেট করুন।
নিম্নলিখিত ডায়াগ্রামটি পাব/সাব দিয়ে তৈরি একটি চ্যাট অ্যাপের আর্কিটেকচার দেখায়:
পূর্ববর্তী ডায়াগ্রামে, একটি পাব/সাব চ্যাট অ্যাপের সাথে মিথস্ক্রিয়াকারী একজন ব্যবহারকারীর তথ্যের প্রবাহ নিম্নরূপ:
একজন ব্যবহারকারী কোনো চ্যাট অ্যাপে সরাসরি বার্তা বা চ্যাট স্পেসের মাধ্যমে একটি বার্তা পাঠান, অথবা কোনো চ্যাট স্পেসে এমন কোনো ঘটনা ঘটে যার জন্য চ্যাট অ্যাপটির একটি সক্রিয় সাবস্ক্রিপশন রয়েছে।
চ্যাট একটি পাব/সাব টপিকে বার্তাটি পাঠায়।
একটি অ্যাপ্লিকেশন সার্ভার, যা একটি ক্লাউড বা অন-প্রিমিসেস সিস্টেম এবং যাতে চ্যাট অ্যাপের লজিক থাকে, সেটি ফায়ারওয়ালের মাধ্যমে বার্তা গ্রহণ করার জন্য পাব/সাব টপিকে সাবস্ক্রাইব করে।
ঐচ্ছিকভাবে, চ্যাট অ্যাপটি অ্যাসিঙ্ক্রোনাসভাবে বার্তা পোস্ট করতে বা অন্যান্য অপারেশন সম্পাদন করতে চ্যাট এপিআই-কে কল করতে পারে।
পূর্বশর্ত
আপনার চ্যাট অ্যাপ তৈরি করার সময়, আপনাকে অবশ্যই Google Cloud কনসোলের চ্যাট এপিআই কনফিগারেশন পৃষ্ঠায় ‘Build this Chat app as a Google Workspace add-on’ বিকল্পটি আনচেক করতে হবে। ‘Publish the app to Google Chat’ দেখুন।
নোড.জেএস
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- বিলিং সক্ষম করা একটি গুগল ক্লাউড প্রজেক্ট। কোনো বিদ্যমান প্রজেক্টে বিলিং সক্ষম করা আছে কিনা তা পরীক্ষা করতে, আপনার প্রজেক্টগুলোর বিলিং স্ট্যাটাস যাচাই করুন দেখুন। একটি প্রজেক্ট তৈরি করতে এবং বিলিং সেট আপ করতে, একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন দেখুন।
- নোড.জেএস ১৪ বা তার বেশি
- এনপিএম প্যাকেজ ম্যানেজমেন্ট টুল
- একটি চালু করা Node.js প্রজেক্ট। একটি নতুন প্রজেক্ট চালু করতে, একটি নতুন ফোল্ডার তৈরি করে তাতে প্রবেশ করুন, তারপর আপনার কমান্ড-লাইন ইন্টারফেসে নিম্নলিখিত কমান্ডটি চালান:
npm init
পাইথন
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- বিলিং সক্ষম করা একটি গুগল ক্লাউড প্রজেক্ট। কোনো বিদ্যমান প্রজেক্টে বিলিং সক্ষম করা আছে কিনা তা পরীক্ষা করতে, আপনার প্রজেক্টগুলোর বিলিং স্ট্যাটাস যাচাই করুন দেখুন। একটি প্রজেক্ট তৈরি করতে এবং বিলিং সেট আপ করতে, একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন দেখুন।
- পাইথন ৩.৬ বা তার বেশি
- পিপ প্যাকেজ ম্যানেজমেন্ট টুল
জাভা
- গুগল চ্যাট ব্যবহারের সুবিধাসহ একটি ব্যবসায়িক বা এন্টারপ্রাইজ গুগল ওয়ার্কস্পেস অ্যাকাউন্ট।
- বিলিং সক্ষম করা একটি গুগল ক্লাউড প্রজেক্ট। কোনো বিদ্যমান প্রজেক্টে বিলিং সক্ষম করা আছে কিনা তা পরীক্ষা করতে, আপনার প্রজেক্টগুলোর বিলিং স্ট্যাটাস যাচাই করুন দেখুন। একটি প্রজেক্ট তৈরি করতে এবং বিলিং সেট আপ করতে, একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন দেখুন।
- জাভা ১১ বা তার বেশি
- মেভেন প্যাকেজ ম্যানেজমেন্ট টুল
পরিবেশ তৈরি করুন
গুগল এপিআই ব্যবহার করার আগে, আপনাকে একটি গুগল ক্লাউড প্রজেক্টে সেগুলি চালু করতে হবে। আপনি একটি একক গুগল ক্লাউড প্রজেক্টে এক বা একাধিক এপিআই চালু করতে পারেন।গুগল ক্লাউড কনসোলে গুগল চ্যাট এপিআই এবং পাব/সাব এপিআই সক্রিয় করুন।
পাব/সাব সেট আপ করুন
একটি পাব/সাব টপিক তৈরি করুন যেখানে চ্যাট এপিআই বার্তা পাঠাতে পারবে। আমরা প্রতিটি চ্যাট অ্যাপের জন্য একটিমাত্র টপিক ব্যবহার করার পরামর্শ দিই।
নিম্নলিখিত সার্ভিস অ্যাকাউন্টটিকে পাব/সাব পাবলিশার রোল অ্যাসাইন করে টপিকে পাবলিশ করার জন্য চ্যাটকে অনুমতি দিন :
chat-api-push@system.gserviceaccount.comPub/Sub এবং Chat-এর সাথে অনুমোদনের জন্য Chat অ্যাপের একটি সার্ভিস অ্যাকাউন্ট তৈরি করুন এবং প্রাইভেট কী ফাইলটি আপনার ওয়ার্কিং ডিরেক্টরিতে সংরক্ষণ করুন।
টপিকটিতে একটি পুল সাবস্ক্রিপশন তৈরি করুন ।
আপনার পূর্বে তৈরি করা সার্ভিস অ্যাকাউন্টের সাবস্ক্রিপশনে পাব/সাব সাবস্ক্রাইবার রোলটি নির্ধারণ করুন ।
স্ক্রিপ্টটি লিখুন
নোড.জেএস
CLI-তে, সার্ভিস অ্যাকাউন্টের ক্রেডেনশিয়াল প্রদান করুন :
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATHCLI-তে, গুগল ক্লাউড প্রজেক্ট আইডি প্রদান করুন:
export PROJECT_ID=PROJECT_IDCLI-তে, আপনার পূর্বে তৈরি করা Pub/Sub সাবস্ক্রিপশনের সাবস্ক্রিপশন আইডিটি প্রদান করুন:
export SUBSCRIPTION_ID=SUBSCRIPTION_IDআপনার ওয়ার্কিং ডিরেক্টরিতে
package.jsonনামে একটি ফাইল তৈরি করুন।package.jsonফাইলে নিম্নলিখিত কোডটি পেস্ট করুন:আপনার ওয়ার্কিং ডিরেক্টরিতে
index.jsনামে একটি ফাইল তৈরি করুন।index.jsফাইলে নিচের কোডটি পেস্ট করুন:
পাইথন
CLI-তে, সার্ভিস অ্যাকাউন্টের ক্রেডেনশিয়াল প্রদান করুন :
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATHCLI-তে, গুগল ক্লাউড প্রজেক্ট আইডি প্রদান করুন:
export PROJECT_ID=PROJECT_IDCLI-তে, আপনার পূর্বে তৈরি করা Pub/Sub সাবস্ক্রিপশনের সাবস্ক্রিপশন আইডিটি প্রদান করুন:
export SUBSCRIPTION_ID=SUBSCRIPTION_IDআপনার ওয়ার্কিং ডিরেক্টরিতে
requirements.txtনামে একটি ফাইল তৈরি করুন।requirements.txtফাইলে নিম্নলিখিত কোডটি পেস্ট করুন:আপনার ওয়ার্কিং ডিরেক্টরিতে
app.pyনামে একটি ফাইল তৈরি করুন।app.pyফাইলে নিচের কোডটি পেস্ট করুন:
জাভা
CLI-তে, সার্ভিস অ্যাকাউন্টের ক্রেডেনশিয়াল প্রদান করুন :
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATHCLI-তে, গুগল ক্লাউড প্রজেক্ট আইডি প্রদান করুন:
export PROJECT_ID=PROJECT_IDCLI-তে, আপনার পূর্বে তৈরি করা Pub/Sub সাবস্ক্রিপশনের সাবস্ক্রিপশন আইডিটি প্রদান করুন:
export SUBSCRIPTION_ID=SUBSCRIPTION_IDআপনার ওয়ার্কিং ডিরেক্টরিতে
pom.xmlনামে একটি ফাইল তৈরি করুন।pom.xmlফাইলে নিম্নলিখিত কোডটি পেস্ট করুন:আপনার ওয়ার্কিং ডিরেক্টরিতে
src/main/javaএই ডিরেক্টরি কাঠামোটি তৈরি করুন।src/main/javaডিরেক্টরিতেMain.javaনামে একটি ফাইল তৈরি করুন।Main.javaতে নিম্নলিখিত কোডটি পেস্ট করুন:
অ্যাপটি চ্যাটে প্রকাশ করুন
Google Cloud কনসোলে, > এপিআই ও পরিষেবা > সক্রিয় এপিআই ও পরিষেবা > গুগল চ্যাট এপিআই > কনফিগারেশন- এ যান।
পাব/সাব-এর জন্য চ্যাট অ্যাপটি কনফিগার করুন:
- 'এই চ্যাট অ্যাপটিকে একটি গুগল ওয়ার্কস্পেস অ্যাড-অন হিসাবে তৈরি করুন ' বিকল্পটি থেকে টিক চিহ্ন তুলে দিন। নিশ্চিত করার জন্য একটি ডায়ালগ বক্স খুলবে। ডায়ালগ বক্সে, 'অক্ষম করুন' (Disable) বোতামে ক্লিক করুন।
- অ্যাপের নামে
Quickstart Appলিখুন। - Avatar URL- এর জায়গায়
https://developers.google.com/chat/images/quickstart-app-avatar.pngলিখুন। - Description- এ
Quickstart appলিখুন। - Functionality-এর অধীনে, Join spaces and group conversations নির্বাচন করুন।
- কানেকশন সেটিংস-এর অধীনে, ক্লাউড পাব/সাব নির্বাচন করুন এবং আপনার পূর্বে তৈরি করা পাব/সাব টপিকটির নামটি পেস্ট করুন।
- ‘Visibility’-এর অধীনে, ‘Make this Google Chat app available to specific people and groups in your domain’ নির্বাচন করুন এবং আপনার ইমেল ঠিকানা লিখুন।
- লগস-এর অধীনে, ত্রুটি লগ করার বিকল্পটি লগিং-এ নির্বাচন করুন।
সংরক্ষণ করুন- এ ক্লিক করুন।
অ্যাপটি চ্যাটে বার্তা গ্রহণ ও উত্তর দেওয়ার জন্য প্রস্তুত।
স্ক্রিপ্টটি চালান
CLI-তে, আপনার ওয়ার্কিং ডিরেক্টরিতে প্রবেশ করুন এবং স্ক্রিপ্টটি চালান:
নোড.জেএস
npm install
npm start
পাইথন
python -m venv env
source env/bin/activate
pip install -r requirements.txt -U
python app.py
জাভা
mvn compile exec:java -Dexec.mainClass=Main
যখন আপনি কোডটি রান করেন, অ্যাপ্লিকেশনটি পাব/সাব টপিকে প্রকাশিত মেসেজগুলো শোনা শুরু করে।
আপনার চ্যাট অ্যাপটি পরীক্ষা করুন
আপনার চ্যাট অ্যাপটি পরীক্ষা করতে, চ্যাট অ্যাপটি দিয়ে একটি ডিরেক্ট মেসেজ স্পেস খুলুন এবং একটি মেসেজ পাঠান:
বিশ্বস্ত পরীক্ষক হিসেবে নিজেকে যুক্ত করার সময় আপনি যে Google Workspace অ্যাকাউন্টটি দিয়েছিলেন, সেটি ব্যবহার করে Google Chat খুলুন।
- নতুন চ্যাট -এ ক্লিক করুন।
- ‘এক বা একাধিক ব্যক্তি যোগ করুন’ ফিল্ডে আপনার চ্যাট অ্যাপের নামটি টাইপ করুন।
ফলাফল থেকে আপনার চ্যাট অ্যাপটি বেছে নিন। একটি সরাসরি বার্তা খুলে যাবে।
- অ্যাপের নতুন ডাইরেক্ট মেসেজে,
Helloটাইপ করুন এবংenterচাপুন।
বিশ্বস্ত পরীক্ষক যোগ করতে এবং ইন্টারেক্টিভ ফিচার পরীক্ষা করার বিষয়ে আরও জানতে, “Google Chat অ্যাপের জন্য ইন্টারেক্টিভ ফিচার পরীক্ষা করুন” দেখুন।
সমস্যা সমাধান
যখন কোনো গুগল চ্যাট অ্যাপ বা কার্ডে ত্রুটি দেখা দেয়, তখন চ্যাট ইন্টারফেসে "কিছু একটা ভুল হয়েছে" বা "আপনার অনুরোধটি প্রক্রিয়া করা সম্ভব হয়নি" লেখা একটি বার্তা প্রদর্শিত হয়। কখনও কখনও চ্যাট UI কোনো ত্রুটির বার্তা প্রদর্শন করে না, কিন্তু চ্যাট অ্যাপ বা কার্ডটি একটি অপ্রত্যাশিত ফলাফল দেয়; উদাহরণস্বরূপ, কার্ডের বার্তাটি হয়তো দেখা যায় না।
যদিও চ্যাট UI-তে কোনো ত্রুটির বার্তা প্রদর্শিত নাও হতে পারে, চ্যাট অ্যাপের জন্য ত্রুটি লগিং চালু থাকলে, ত্রুটিগুলি সমাধান করতে সাহায্য করার জন্য বর্ণনামূলক ত্রুটির বার্তা এবং লগ ডেটা উপলব্ধ থাকে। ত্রুটি দেখা, ডিবাগ করা এবং সমাধান করার জন্য, "গুগল চ্যাটের ত্রুটি সমাধান ও প্রতিকার" দেখুন।
পরিষ্কার করা
এই টিউটোরিয়ালে ব্যবহৃত রিসোর্সগুলোর জন্য আপনার গুগল ক্লাউড অ্যাকাউন্টে কোনো চার্জ হওয়া এড়াতে, আমরা আপনাকে ক্লাউড প্রজেক্টটি ডিলিট করে দেওয়ার পরামর্শ দিচ্ছি।
- Google Cloud কনসোলে, Manage resources পেজে যান। Menu > IAM & Admin > Manage Resources- ক্লিক করুন।
- প্রজেক্ট তালিকা থেকে আপনি যে প্রজেক্টটি মুছতে চান সেটি নির্বাচন করুন এবং তারপর 'মুছে ফেলুন বোতামে ক্লিক করুন।
- ডায়ালগ বক্সে প্রজেক্ট আইডি টাইপ করুন এবং তারপর প্রজেক্টটি মুছে ফেলার জন্য 'শাট ডাউন'-এ ক্লিক করুন।
সম্পর্কিত বিষয়
আপনার চ্যাট অ্যাপে আরও বৈশিষ্ট্য যোগ করতে, নিম্নলিখিতগুলি দেখুন: