mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-20 04:29:16 +00:00
Update Julio 2022
Se añade localAuth para mantener la session despues de escanear el codigo y se hace un code fix al api rest Co-Authored-By: Leifer Mendez <15802366+leifermendez@users.noreply.github.com>
This commit is contained in:
76
app.js
76
app.js
@@ -6,7 +6,7 @@ const fs = require('fs');
|
||||
const express = require('express');
|
||||
const cors = require('cors')
|
||||
const qrcode = require('qrcode-terminal');
|
||||
const { Client } = require('whatsapp-web.js');
|
||||
const { Client,LocalAuth } = require('whatsapp-web.js');
|
||||
const mysqlConnection = require('./config/mysql')
|
||||
const { middlewareClient } = require('./middleware/client')
|
||||
const { generateImage, cleanNumber, checkEnvFile, createClient, isValidNumber } = require('./controllers/handle')
|
||||
@@ -21,10 +21,7 @@ const MULTI_DEVICE = process.env.MULTI_DEVICE || 'true';
|
||||
const server = require('http').Server(app)
|
||||
|
||||
const port = process.env.PORT || 3000
|
||||
const SESSION_FILE_PATH = './session.json';
|
||||
var client;
|
||||
var sessionData;
|
||||
|
||||
app.use('/', require('./routes/web'))
|
||||
|
||||
/**
|
||||
@@ -127,77 +124,38 @@ const listenMessage = () => client.on('message', async msg => {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Revisamos si tenemos credenciales guardadas para inciar sessio
|
||||
* este paso evita volver a escanear el QRCODE
|
||||
*/
|
||||
const withSession = () => {
|
||||
console.log(`Validando session con Whatsapp...`)
|
||||
sessionData = require(SESSION_FILE_PATH);
|
||||
client = new Client(createClient(sessionData,true));
|
||||
|
||||
client.on('ready', () => {
|
||||
connectionReady()
|
||||
listenMessage()
|
||||
|
||||
client = new Client({
|
||||
authStrategy: new LocalAuth(),
|
||||
puppeteer: { headless: true }
|
||||
});
|
||||
|
||||
client.on('auth_failure', () => connectionLost())
|
||||
|
||||
client.initialize();
|
||||
}
|
||||
|
||||
/**
|
||||
* Generamos un QRCODE para iniciar sesion
|
||||
*/
|
||||
const withOutSession = () => {
|
||||
console.log('No tenemos session guardada');
|
||||
console.log([
|
||||
'🙌 El core de whatsapp se esta actualizando',
|
||||
'🙌 para proximamente dar paso al multi-device',
|
||||
'🙌 falta poco si quieres estar al pendiente unete',
|
||||
'🙌 http://t.me/leifermendez',
|
||||
'🙌 Si estas usando el modo multi-device se generan 2 QR Code escanealos',
|
||||
'🙌 Ten paciencia se esta generando el QR CODE',
|
||||
'________________________',
|
||||
].join('\n'));
|
||||
|
||||
client = new Client(createClient());
|
||||
|
||||
client.on('qr', qr => generateImage(qr, () => {
|
||||
|
||||
client.on('qr', qr => generateImage(qr, () => {
|
||||
qrcode.generate(qr, { small: true });
|
||||
|
||||
console.log(`Ver QR http://localhost:${port}/qr`)
|
||||
socketEvents.sendQR(qr)
|
||||
}))
|
||||
}))
|
||||
|
||||
client.on('ready', (a) => {
|
||||
client.on('ready', (a) => {
|
||||
connectionReady()
|
||||
listenMessage()
|
||||
// socketEvents.sendStatus(client)
|
||||
});
|
||||
});
|
||||
|
||||
client.on('auth_failure', (e) => {
|
||||
client.on('auth_failure', (e) => {
|
||||
// console.log(e)
|
||||
// connectionLost()
|
||||
});
|
||||
});
|
||||
|
||||
client.on('authenticated', (session) => {
|
||||
sessionData = session;
|
||||
if(sessionData){
|
||||
fs.writeFile(SESSION_FILE_PATH, JSON.stringify(session), function (err) {
|
||||
if (err) {
|
||||
console.log(`Ocurrio un error con el archivo: `, err);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
client.on('authenticated', () => {
|
||||
console.log('AUTHENTICATED');
|
||||
});
|
||||
|
||||
client.initialize();
|
||||
}
|
||||
|
||||
/**
|
||||
* Revisamos si existe archivo con credenciales!
|
||||
*/
|
||||
(fs.existsSync(SESSION_FILE_PATH) && MULTI_DEVICE === 'false') ? withSession() : withOutSession();
|
||||
|
||||
|
||||
/**
|
||||
* Verificamos si tienes un gesto de db
|
||||
|
||||
Reference in New Issue
Block a user