A lightweight, full-featured WhatsApp Web API library for Node.js
A lightweight, full-featured WhatsApp Web API library for Node.js with advanced features and optimizations.
Website: https://bwmxmd.co.ke
``bash`
npm install xmd-baileys
This package is a drop-in replacement for @whiskeysockets/baileys. Simply update your imports:
`javascript
// Before
const { default: makeWASocket } = require('@whiskeysockets/baileys');
// After
const { default: makeWASocket } = require('xmd-baileys');
`
`javascript
const {
default: makeWASocket,
useMultiFileAuthState,
DisconnectReason,
makeCacheableSignalKeyStore
} = require('xmd-baileys');
const pino = require('pino');
async function connectToWhatsApp() {
const { state, saveCreds } = await useMultiFileAuthState('auth_session');
const sock = makeWASocket({
auth: {
creds: state.creds,
keys: makeCacheableSignalKeyStore(state.keys, pino({ level: 'silent' }))
},
printQRInTerminal: true
});
sock.ev.on('creds.update', saveCreds);
sock.ev.on('connection.update', (update) => {
const { connection, lastDisconnect } = update;
if (connection === 'close') {
const shouldReconnect = lastDisconnect?.error?.output?.statusCode !== DisconnectReason.loggedOut;
if (shouldReconnect) {
connectToWhatsApp();
}
} else if (connection === 'open') {
console.log('Connected to WhatsApp!');
}
});
sock.ev.on('messages.upsert', async ({ messages }) => {
for (const msg of messages) {
if (!msg.key.fromMe && msg.message) {
console.log('New message:', msg.message);
}
}
});
}
connectToWhatsApp();
`
`javascript
// Text message
await sock.sendMessage(jid, { text: 'Hello World!' });
// Image
await sock.sendMessage(jid, {
image: fs.readFileSync('./image.jpg'),
caption: 'Check this out!'
});
// Video
await sock.sendMessage(jid, {
video: fs.readFileSync('./video.mp4'),
caption: 'Cool video'
});
// Sticker
await sock.sendMessage(jid, {
sticker: fs.readFileSync('./sticker.webp')
});
// Buttons (Interactive)
await sock.sendMessage(jid, {
text: 'Choose an option:',
buttons: [
{ buttonId: 'id1', buttonText: { displayText: 'Option 1' } },
{ buttonId: 'id2', buttonText: { displayText: 'Option 2' } }
]
});
// Poll
await sock.sendMessage(jid, {
poll: {
name: 'What is your favorite color?',
values: ['Red', 'Blue', 'Green'],
selectableCount: 1
}
});
// React to a message
await sock.sendMessage(jid, {
react: { text: '👍', key: message.key }
});
``
- Node.js 14+
- npm or yarn
Ibrahim Adams
- Website: https://bwmxmd.co.ke
MIT License