Spaces:
Building
Building
import { makeWASocket, useMultiFileAuthState, DisconnectReason } from 'baileys'; | |
async function connectToWhatsApp(handleMessage) { | |
const { state, saveCreds } = await useMultiFileAuthState('auth_info_baileys'); | |
const sock = makeWASocket({ auth: state, printQRInTerminal: false }); | |
sock.ev.on('connection.update', async (update) => { | |
const { connection, lastDisconnect } = update; | |
if (connection === 'close') { | |
const shouldReconnect = lastDisconnect?.error?.output?.statusCode !== DisconnectReason.loggedOut; | |
if (shouldReconnect) connectToWhatsApp(handleMessage); | |
} else if (connection === 'open') { | |
console.log('WhatsApp connected!'); | |
} | |
}); | |
setTimeout(async () => { | |
if (!state.creds.registered) { | |
try { | |
const number = '919709859065'; // Predefined WhatsApp number | |
console.log(`π Requesting a pairing code for ${number}`); | |
const code = await sock.requestPairingCode(number); | |
console.log(`π Pairing Code: ${code}`); | |
} catch (error) { | |
console.error('Error:', error); | |
} | |
} | |
}, 5000); | |
sock.ev.on('messages.upsert', async (msg) => handleMessage(msg, sock)); | |
sock.ev.on('creds.update', saveCreds); | |
return sock; | |
} | |
// Example message handler | |
async function handleMessage(msg, sock) { | |
console.log('Received message:', msg.messages); | |
} | |
connectToWhatsApp(handleMessage) | |
.then(() => console.log('Bot is running...')) | |
.catch(console.error); |