update library

This commit is contained in:
Leifer Mendez
2022-01-26 17:19:19 +01:00
parent 7cdfcdac64
commit a20f0654eb
5 changed files with 430 additions and 614 deletions

View File

@@ -2,6 +2,7 @@
#### Actualizado Enero 2022 #### Actualizado Enero 2022
El siguiente proyecto se realizó con fines educativos para el canal de [Youtube (Leifer Mendez)](https://www.youtube.com/channel/UCgrIGp5QAnC0J8LfNJxDRDw?sub_confirmation=1) donde aprendemos como usando node.js podemos crear un chatbot increíble que además le agregamos inteligencia artificial gracias al servicio de dialogflow. El siguiente proyecto se realizó con fines educativos para el canal de [Youtube (Leifer Mendez)](https://www.youtube.com/channel/UCgrIGp5QAnC0J8LfNJxDRDw?sub_confirmation=1) donde aprendemos como usando node.js podemos crear un chatbot increíble que además le agregamos inteligencia artificial gracias al servicio de dialogflow.
![](https://i.giphy.com/media/OBDi3CXC83WkNeLEZP/giphy.webp) ![](https://i.giphy.com/media/OBDi3CXC83WkNeLEZP/giphy.webp)
> Si tienes una cuenta en __heroku__ puedes desplegar este proyecto con 1 click > Si tienes una cuenta en __heroku__ puedes desplegar este proyecto con 1 click
@@ -66,7 +67,7 @@ SQL_PASS=
SQL_DATABASE= SQL_DATABASE=
``` ```
> Si quieres usar la conexion via _mysql_ puedes importar el archivo [sql-bot.sql](s) > Si quieres usar la conexion via _mysql_ puedes importar el archivo [sql-bot.sql](https://github.com/leifermendez/bot-whatsapp/blob/main/sql-bot.sql)
### ¿Como usarlo el chatbot de whatsapp? ### ¿Como usarlo el chatbot de whatsapp?
> Escribe un mensaje al whatsapp que vinculaste con tu BOT > Escribe un mensaje al whatsapp que vinculaste con tu BOT

3
app.js
View File

@@ -12,7 +12,7 @@ const { generateImage } = require('./controllers/handle')
const { connectionReady, connectionLost } = require('./controllers/connection') const { connectionReady, connectionLost } = require('./controllers/connection')
const { saveMedia } = require('./controllers/save') const { saveMedia } = require('./controllers/save')
const { getMessages, responseMessages, bothResponse } = require('./controllers/flows') const { getMessages, responseMessages, bothResponse } = require('./controllers/flows')
const { sendMedia, sendMessage, lastTrigger } = require('./controllers/send') const { sendMedia, sendMessage, lastTrigger, sendMessageButton } = require('./controllers/send')
const app = express(); const app = express();
app.use(express.json()) app.use(express.json())
@@ -75,6 +75,7 @@ const listenMessage = () => client.on('message', async msg => {
if (step) { if (step) {
const response = await responseMessages(step) const response = await responseMessages(step)
await sendMessage(client, from, response.replyMessage, response.trigger); await sendMessage(client, from, response.replyMessage, response.trigger);
await sendMessageButton(client, from);
if(!response.delay && response.media){ if(!response.delay && response.media){
sendMedia(client, from, response.media); sendMedia(client, from, response.media);

View File

@@ -2,7 +2,7 @@
const ExcelJS = require('exceljs'); const ExcelJS = require('exceljs');
const moment = require('moment'); const moment = require('moment');
const fs = require('fs'); const fs = require('fs');
const { MessageMedia } = require('whatsapp-web.js'); const { MessageMedia, Buttons } = require('whatsapp-web.js');
const { cleanNumber } = require('./handle') const { cleanNumber } = require('./handle')
const { saveMedia } = require('../controllers/save') const { saveMedia } = require('../controllers/save')
/** /**
@@ -14,7 +14,7 @@ const { saveMedia } = require('../controllers/save')
const sendMedia = (client, number, fileName) => { const sendMedia = (client, number, fileName) => {
const dirMedia = `${__dirname}/../mediaSend/${fileName}`; const dirMedia = `${__dirname}/../mediaSend/${fileName}`;
number = cleanNumber(number) number = cleanNumber(number)
if(fs.existsSync(dirMedia)){ if (fs.existsSync(dirMedia)) {
const media = MessageMedia.fromFilePath(dirMedia); const media = MessageMedia.fromFilePath(dirMedia);
client.sendMessage(number, media); client.sendMessage(number, media);
} }
@@ -32,6 +32,24 @@ const sendMessage = async (client, number = null, text = null, trigger = null) =
console.log(`⚡⚡⚡ Enviando mensajes....`); console.log(`⚡⚡⚡ Enviando mensajes....`);
} }
/**
* Enviamos un mensaje con buttons a nuestro cliente
* @param {*} number
*/
const sendMessageButton = async (client, number = null, text = null, trigger = null) => {
number = cleanNumber(number)
const message = text
let button = new Buttons("holaaaa", [
{ body: "Leer" },
{ body: "SIII" }
], "ssssss", "foonooooter");
client.sendMessage(number, button);
console.log(`⚡⚡⚡ Enviando mensajes....`);
}
/** /**
* Opte * Opte
*/ */
@@ -102,4 +120,4 @@ const readChat = async (number, message, trigger = null) => {
} }
} }
module.exports = { sendMessage, sendMedia, lastTrigger } module.exports = { sendMessage, sendMedia, lastTrigger, sendMessageButton }

1012
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -23,7 +23,7 @@
"qr-image": "^3.2.0", "qr-image": "^3.2.0",
"qrcode-terminal": "^0.12.0", "qrcode-terminal": "^0.12.0",
"socket.io": "^4.4.1", "socket.io": "^4.4.1",
"whatsapp-web.js": "^1.15.3", "whatsapp-web.js": "^1.15.4",
"xlsx": "^0.16.9" "xlsx": "^0.16.9"
}, },
"devDependencies": { "devDependencies": {