diff --git a/whatsapp-gateway/baileys-client.js b/whatsapp-gateway/baileys-client.js index d6911c0..74fe0a1 100644 --- a/whatsapp-gateway/baileys-client.js +++ b/whatsapp-gateway/baileys-client.js @@ -1,4 +1,6 @@ -const { default: makeWASocket, useMultiFileAuthState, DisconnectReason } = require('@whiskeysockets/baileys'); +const baileys = require('@whiskeysockets/baileys'); +const makeWASocket = baileys.default || baileys.makeWASocket || baileys; +const { useMultiFileAuthState, DisconnectReason, fetchLatestBaileysVersion } = baileys; const pino = require('pino'); const axios = require('axios'); const fs = require('fs'); @@ -47,12 +49,26 @@ async function startSession(session_key, webhook_url) { const sessionFolder = path.join(SESSIONS_DIR, session_key); const { state, saveCreds } = await useMultiFileAuthState(sessionFolder); - const sock = makeWASocket({ + // Fetch the latest WhatsApp Web version to avoid 405 rejection + let version; + try { + const versionInfo = await fetchLatestBaileysVersion(); + version = versionInfo.version; + console.log(`[Baileys] Using WA version: ${version}`); + } catch (e) { + console.warn(`[Baileys] Could not fetch version, using default`); + } + + const socketConfig = { auth: state, printQRInTerminal: false, - logger: pino({ level: 'silent' }), // Suppress massive terminal output - browser: ['Nabeh Gateway', 'Chrome', '1.0.0'] - }); + logger: pino({ level: 'silent' }), + browser: ['Nabeh Gateway', 'Chrome', '120.0.0'] + }; + if (version) socketConfig.version = version; + + const sock = makeWASocket(socketConfig); + console.log(`[Session] Socket created for ${session_key}`); sessions.set(session_key, sock);