Node.js & Automation

Build a Lightweight WhatsApp Automation Bot using Node.js

ব্যবসায়িক ক্লায়েন্টদের অটোমেটেড নোটিফিকেশন পাঠানো বা কাস্টম কুয়েরির অটো-রিপ্লাই দেওয়ার জন্য অফিসিয়াল মেটা হোয়াটসঅ্যাপ ক্লাউড এপিআই বেশ ব্যয়বহুল। তবে ওপেন সোর্স মডিউল **`whatsapp-web.js`** ব্যবহার করে আমরা কোনো অতিরিক্ত খরচ ছাড়াই সম্পূর্ণ নিজস্ব একটি হোয়াটসঅ্যাপ অটোমেশন সিস্টেম তৈরি করতে পারি।

এটি ব্যাকগ্রাউন্ডে একটি হেডলেস ক্রোমিয়াম (Headless Chromium) ব্রাউজার ইনস্ট্যান্সের মাধ্যমে হোয়াটসঅ্যাপ ওয়েবের সাথে সংযুক্ত হয় এবং সেশন ম্যানেজমেন্টের মাধ্যমে রিয়েল-টাইম কাজ সচল রাখে।

১. ইনিশিয়াল প্রোজেক্ট সেটআপ এবং প্যাকেজ ইনস্টলেশন

আপনার টার্মিনাল বা নোড এনভায়রনমেন্টে একটি নতুন ডিরেক্টরি তৈরি করে প্রয়োজনীয় ডিপেন্ডেন্সিগুলো ইনস্টল করে নিন:

npm init -y
npm install whatsapp-web.js qrcode-terminal

ধাপ ২: কোর বট স্ক্রিপ্ট (`bot.js`)

টার্মিনালে কিউআর কোড (QR Code) রেন্ডার করার জন্য এবং মেসেজ হ্যান্ডেল করার জন্য নিচের আর্কিটেকচার কোডটি ব্যবহার করুন:

const { Client, LocalAuth } = require('whatsapp-web.js');
const qrcode = require('qrcode-terminal');

// সেশন ক্যাশ করার জন্য LocalAuth ব্যবহার করে ক্লায়েন্ট ইনিশিয়ালাইজ করা
const client = new Client({
    authStrategy: new LocalAuth(),
    puppeteer: {
        args: ['--no-sandbox', '--disable-setuid-sandbox'] // লিনাক্স বা মোবাইল এনভায়রনমেন্টের জন্য সেফটি ফ্ল্যাগ
    }
});

// কিউআর কোড ইভেন্ট হ্যান্ডলার (টার্মিনালে স্ক্যান অপশন দেখাবে)
client.on('qr', (qr) => {
    console.log('Scan this QR code using WhatsApp Link a Device menu:');
    qrcode.generate(qr, { small: true });
});

// সফল লগইন নোটিফিকেশন
client.on('ready', () => {
    console.log('WhatsApp Engine Live: Bot successfully synchronized!');
});

// মেসেজ লিসেনার এবং অটো-রেসপন্ডার মেকানিজম
client.on('message', async (msg) => {
    if (msg.body.toLowerCase() === 'hello' || msg.body.toLowerCase() === 'hi') {
        await msg.reply('Hello! Welcome to Ahyan Creations Automated Support System. How can I assist you today? 🤖');
    }
});

client.initialize();

সার্ভার সেশন সিক্রেটস: `LocalAuth` ব্যবহার করার ফলে প্রথমবার টার্মিনালের কিউআর কোডটি একবার মোবাইল দিয়ে স্ক্যান করলেই আপনার সেশনটি স্থানীয় `.wwebjs_auth` ফোল্ডারে সেভ হয়ে থাকবে। ফলে পরবর্তীতে স্ক্রিপ্ট রান করলে পুনরায় স্ক্যান করতে হবে না।