From 3cc386acd449681eace2c85dea803caed1a41b87 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 26 Dec 2022 13:33:21 +0000 Subject: [PATCH 01/14] docs(contributor): contrib-readme-action has updated readme --- README.md | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 81 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a3d02b7..8e70144 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,87 @@ Video como hacer PR: https://youtu.be/Lxt8Acob6aU **Comunidad** - + + + + + + + + + + + + + + +
+ + leifermendez +
+ Leifer Mendez +
+
+ + aurik3 +
+ Null +
+
+ + vicente1992 +
+ Manuel Vicente Ortiz +
+
+ + leifermendezfroged +
+ Leifer Mendez +
+
+ + HKong31 +
+ Null +
+
+ + jzvi12 +
+ Zvi +
+
+ + Gonzalito87 +
+ Null +
+
+ + tonyvazgar +
+ Luis Antonio Vázquez García +
+
+ + ulisesvina +
+ Ulises Viña +
+
+ + rrruuuyyy +
+ Rodrigo Mendoza Cabrera +
+
+ + yond1994 +
+ Yonathan Suarez +
+
> Forma parte de este proyecto. From 512c92309578d15a4df7589d0b3207a25b0e0b4e Mon Sep 17 00:00:00 2001 From: HackMD <37423+hackmd-hub[bot]@users.noreply.github.com> Date: Sun, 25 Dec 2022 22:15:07 +0000 Subject: [PATCH 02/14] last changed at Dec 25, 2022 11:11 PM, pushed by Leifer Mendez --- .../docs/src/routes/docs/masterclass/index.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/docs/src/routes/docs/masterclass/index.md b/packages/docs/src/routes/docs/masterclass/index.md index d80dcaa..7788e15 100644 --- a/packages/docs/src/routes/docs/masterclass/index.md +++ b/packages/docs/src/routes/docs/masterclass/index.md @@ -1,3 +1,14 @@ -# MasterClass +### Preguntas Frecuentes para Master Class BOT v2 +> Anota aqui las preguntas o dudas que tengas +> Pronto estare publicando fecha y hora para la masterclass -... +1.- Si necesito correr dos bots al mismo tiempo ¿donde puedo cambiar el puerto? +2.- Si necesito agregar o modificar funciones del bot, ¿como puedo hacerlo? +3.- Si quiero mi bot con otra base de datos diferente a MySQL ¿como lo puedo hacer? +4.- Quiero conectarme a tal o cual API con JSON/XML/etc, ¿se puede hacer? +5.- ¿Como integrar listas? +6.- Preguntas y respuestas con el Bot +7.- Guardar conversaciones en Excel. +8.- ¿Puedo usar 2 o mas sesiones (códigos QR) al mismo tiempo? +9.- ¿Puede ser que al usar el provider bailey, al leer el qr.png, que sea desde una url en el navegador, y no desde visual studio? Gracias +10.- ¿Cómo tomo los datos que me envían en un mensaje para utilizarlo internamente en la búsqueda de datos propios y devolver la respuesta? From d522b03e2e6e6e3f7c467c59e3d2d6f288fe37b2 Mon Sep 17 00:00:00 2001 From: HackMD <37423+hackmd-hub[bot]@users.noreply.github.com> Date: Mon, 26 Dec 2022 19:26:37 +0000 Subject: [PATCH 03/14] feat(docs): master class updated --- packages/docs/src/routes/docs/masterclass/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/docs/src/routes/docs/masterclass/index.md b/packages/docs/src/routes/docs/masterclass/index.md index 7788e15..5b472af 100644 --- a/packages/docs/src/routes/docs/masterclass/index.md +++ b/packages/docs/src/routes/docs/masterclass/index.md @@ -1,3 +1,4 @@ +[![hackmd-github-sync-badge](https://hackmd.io/79xQyVSgRD6RsTpqtMPPdw/badge)](https://hackmd.io/79xQyVSgRD6RsTpqtMPPdw) ### Preguntas Frecuentes para Master Class BOT v2 > Anota aqui las preguntas o dudas que tengas > Pronto estare publicando fecha y hora para la masterclass From 69fd81a565e61b249ac50917585293d2d84e3dd4 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Mon, 26 Dec 2022 20:27:54 +0100 Subject: [PATCH 04/14] feat(docs): master class updated --- packages/docs/src/routes/docs/masterclass/index.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/docs/src/routes/docs/masterclass/index.md b/packages/docs/src/routes/docs/masterclass/index.md index 5b472af..9f94b4e 100644 --- a/packages/docs/src/routes/docs/masterclass/index.md +++ b/packages/docs/src/routes/docs/masterclass/index.md @@ -4,12 +4,21 @@ > Pronto estare publicando fecha y hora para la masterclass 1.- Si necesito correr dos bots al mismo tiempo ¿donde puedo cambiar el puerto? + 2.- Si necesito agregar o modificar funciones del bot, ¿como puedo hacerlo? + 3.- Si quiero mi bot con otra base de datos diferente a MySQL ¿como lo puedo hacer? + 4.- Quiero conectarme a tal o cual API con JSON/XML/etc, ¿se puede hacer? + 5.- ¿Como integrar listas? + 6.- Preguntas y respuestas con el Bot + 7.- Guardar conversaciones en Excel. + 8.- ¿Puedo usar 2 o mas sesiones (códigos QR) al mismo tiempo? + 9.- ¿Puede ser que al usar el provider bailey, al leer el qr.png, que sea desde una url en el navegador, y no desde visual studio? Gracias + 10.- ¿Cómo tomo los datos que me envían en un mensaje para utilizarlo internamente en la búsqueda de datos propios y devolver la respuesta? From de43077860b79a3ed8ed3fff94791b6d5e3f139a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 27 Dec 2022 12:46:41 +0000 Subject: [PATCH 05/14] ci(version): :zap: automatic - "${date}" updated versions every packages --- packages/bot/package.json | 2 +- packages/cli/package.json | 2 +- packages/create-bot-whatsapp/package.json | 2 +- packages/database/package.json | 2 +- packages/provider/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/bot/package.json b/packages/bot/package.json index 36331cd..6c473c8 100644 --- a/packages/bot/package.json +++ b/packages/bot/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/bot", - "version": "0.0.26-alpha.0", + "version": "0.0.27-alpha.0", "description": "", "main": "./lib/bundle.bot.cjs", "scripts": { diff --git a/packages/cli/package.json b/packages/cli/package.json index bfa705d..07c47f9 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/cli", - "version": "0.0.33-alpha.0", + "version": "0.0.34-alpha.0", "description": "", "main": "index.js", "devDependencies": { diff --git a/packages/create-bot-whatsapp/package.json b/packages/create-bot-whatsapp/package.json index 8d0fa00..d9e0a92 100644 --- a/packages/create-bot-whatsapp/package.json +++ b/packages/create-bot-whatsapp/package.json @@ -1,6 +1,6 @@ { "name": "create-bot-whatsapp", - "version": "0.0.44-alpha.0", + "version": "0.0.45-alpha.0", "description": "", "main": "./lib/bundle.create-bot-whatsapp.cjs", "files": [ diff --git a/packages/database/package.json b/packages/database/package.json index 48ba464..a29afab 100644 --- a/packages/database/package.json +++ b/packages/database/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/database", - "version": "0.0.25-alpha.0", + "version": "0.0.26-alpha.0", "description": "Esto es el conector a mysql, pg, mongo", "main": "./lib/mock/index.cjs", "keywords": [], diff --git a/packages/provider/package.json b/packages/provider/package.json index 727ceb1..c3d77ea 100644 --- a/packages/provider/package.json +++ b/packages/provider/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/provider", - "version": "0.0.31-alpha.0", + "version": "0.0.32-alpha.0", "description": "Esto es el conector a Twilio, Meta, etc...", "main": "./lib/mock/index.cjs", "keywords": [], From e5efdec31debfa0957d8a4844274d28a43aaf55d Mon Sep 17 00:00:00 2001 From: marianarolfo <68322254+marianarolfo@users.noreply.github.com> Date: Tue, 27 Dec 2022 14:17:35 +0100 Subject: [PATCH 06/14] Erratas --- packages/docs/src/routes/docs/index.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/docs/src/routes/docs/index.mdx b/packages/docs/src/routes/docs/index.mdx index d51d17e..6747e26 100644 --- a/packages/docs/src/routes/docs/index.mdx +++ b/packages/docs/src/routes/docs/index.mdx @@ -9,12 +9,12 @@ import Alert from '../../components/widgets/Alert' disfrutar de las nuevas características. -## ¿Que es esto? +## ¿Què es esto? **@bot-whatsapp** es una librería que te permitirá **crear chatbot para WhatsApp** en tan solo minutos de una manera ágil y rápida. A lo largo de esta documentación encontrarás ejemplos y material de ayuda. -Si eres una persona con **poco tiempo y gran capacidad** de comprensión con conocimientos, ejecutando proyectos en Node.js y manejo de terminal. -Esta documentación te ayudará a instalar tu bot de WhatsApp en simples pasos con el propósito de que tengas un chatbot funcional **en solo minutos.** +Si eres una persona con **poco tiempo y gran capacidad** de comprensión, con conocimientos ejecutando proyectos en Node.js y manejo de terminal. +Esta documentación te ayudará a instalar tu bot de WhatsApp en simples pasos; con el propósito de que tengas un chatbot funcional **en solo minutos.** --- @@ -40,5 +40,5 @@ npm create bot-whatsapp@latest -**¿Algun error?** +**¿Algún error?** Recuerda que debes de cumplir con los [requisitos minimos](/docs/install) del sistema From b6fd8e26326b12ec523632d897208c96f6c66fe0 Mon Sep 17 00:00:00 2001 From: marianarolfo <68322254+marianarolfo@users.noreply.github.com> Date: Tue, 27 Dec 2022 16:12:42 +0100 Subject: [PATCH 07/14] Unirse --- packages/docs/src/routes/docs/join/index.mdx | 23 ++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/packages/docs/src/routes/docs/join/index.mdx b/packages/docs/src/routes/docs/join/index.mdx index 87864a4..4d4a99b 100644 --- a/packages/docs/src/routes/docs/join/index.mdx +++ b/packages/docs/src/routes/docs/join/index.mdx @@ -1,3 +1,26 @@ # Unirme +Bienvenido al proyecto! Estamos emocionados de tenerte a bordo y esperamos trabajar contigo. + +Deseamos que te sientas cómodo y que puedas aportar tu valioso conocimiento y habilidades. + +Recuerda que si tienes alguna inquietud, o simplemente deseas interactuar con los otros colaboradores puedes unirte a la comunidad. + +## Ventajas al unirme + +Participar en un proyecto de código abierto te permite aprender de manera práctica sobre tecnologías y metodologías de desarrollo de software. También puedes aprender de otros desarrolladores y contribuir a la comunidad de código abierto. + +Al unirte te estará brindando la oportunidad de **adquirir experiencia en el desarrollo de software** y en el trabajo en equipo. Esto puede ser muy valioso para tu currículum y para tu carrera profesional. + +La visibilidad es uno de los puntos que más se requieren hoy en día, al unirte se te brinda la oportunidad de **mayor visibilidad en la comunidad de desarrolladores y de demostrar tus habilidades**. Esto puede ayudarte a encontrar oportunidades de trabajo o a colaborar con otros proyectos. + +Colaboración con otros desarrolladores de todo el mundo y **trabajar juntos para mejorar el proyecto** Al trabajar en equipo y colaborar con otros, podrás mejorar tu comunicación, resolución de problemas y liderazgo, habilidades que cada vez son más demandadas en el entorno laboral. + +Contribución al bien común Participar en un proyecto de código abierto te permite contribuir a la comunidad y a la sociedad en general, ya que el código abierto es accesible y utilizable por cualquier persona. **Esto puede ser muy gratificante y sentirte parte de algo más grande**. + +Es una excelente manera de incrementar tus habilidades tecnológicas y **estar al tanto de las últimas tendencias y desarrollos en el mundo del software**. Al trabajar con otros desarrolladores y contribuir a proyectos de código abierto, tendrás la oportunidad de **aprender y practicar nuevas tecnologías y metodologías, lo que te ayudará a mejorar tus habilidades y a mantenerte actualizado en el mundo en constante cambio de la tecnología. + + +Esperamos que estés listo para **unirte a nosotros en esta emocionante aventura** + ... From e8d625201ed86e162e0b4e82100ede1d08985555 Mon Sep 17 00:00:00 2001 From: vicente1992 Date: Thu, 29 Dec 2022 00:01:10 -0500 Subject: [PATCH 08/14] feat(starters): meta memory base template added --- packages/provider/src/meta/server.js | 27 ++++++++++++++------- starters/apps/base-meta-memory/app.js | 10 ++++---- starters/apps/base-meta-memory/package.json | 3 ++- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/packages/provider/src/meta/server.js b/packages/provider/src/meta/server.js index cb2ac9a..85e0403 100644 --- a/packages/provider/src/meta/server.js +++ b/packages/provider/src/meta/server.js @@ -1,6 +1,6 @@ const { EventEmitter } = require('node:events') const polka = require('polka') -const { urlencoded } = require('body-parser') +const { urlencoded, json } = require('body-parser') class MetaWebHookServer extends EventEmitter { metaServer @@ -8,9 +8,11 @@ class MetaWebHookServer extends EventEmitter { token constructor(_token, _metaPort) { super() - this.metaServer = this.buildHTTPServer() + this.metaServer = polka() this.metaPort = _metaPort this.token = _token + + this.buildHTTPServer() } /** @@ -21,8 +23,14 @@ class MetaWebHookServer extends EventEmitter { */ incomingMsg = (req, res) => { const { body } = req - const message = body.entry[0].changes[0].value.messages[0] + + const messages = body.entry[0].changes[0].value?.messages + + if (!messages) return + + const [message] = messages const to = body.entry[0].changes[0].value.metadata.display_phone_number + this.emit('message', { from: message.from, to, @@ -55,16 +63,16 @@ class MetaWebHookServer extends EventEmitter { const challenge = query['hub.challenge'] if (!mode || !token) { - return res.sendStatus(403) + return (res.statusCode = 403), res.end('No token!') } if (this.tokenIsValid(mode, token)) { console.log('Webhook verified--->😎😎😎😎') - res.status(200).send(challenge) + return (res.statusCode = 200), res.end(challenge) } if (!this.tokenIsValid(mode, token)) { - res.sendStatus(403) + return (res.statusCode = 403), res.end('No token!') } } @@ -73,12 +81,13 @@ class MetaWebHookServer extends EventEmitter { * @returns */ buildHTTPServer = () => { - polka() + this.metaServer .use(urlencoded({ extended: true })) .get('/webhook', this.verifyToken) - return polka() + this.metaServer .use(urlencoded({ extended: true })) + .use(json()) .post('/webhook', this.incomingMsg) } @@ -91,7 +100,7 @@ class MetaWebHookServer extends EventEmitter { console.log(``) console.log(`[meta]: Agregar esta url "WHEN A MESSAGE COMES IN"`) console.log( - `[meta]: POST http://localhost:${this.metaPort}/meta-hook` + `[meta]: POST http://localhost:${this.metaPort}/webhook` ) console.log(`[meta]: Más información en la documentacion`) console.log(``) diff --git a/starters/apps/base-meta-memory/app.js b/starters/apps/base-meta-memory/app.js index ab26888..c141fad 100644 --- a/starters/apps/base-meta-memory/app.js +++ b/starters/apps/base-meta-memory/app.js @@ -6,7 +6,7 @@ const { addChild, } = require('@bot-whatsapp/bot') -const TwilioProvider = require('@bot-whatsapp/provider/twilio') +const MetaProvider = require('@bot-whatsapp/provider/meta') const MockAdapter = require('@bot-whatsapp/database/mock') /** @@ -79,10 +79,10 @@ const main = async () => { const adapterDB = new MockAdapter() const adapterFlow = createFlow([flowPrincipal]) - const adapterProvider = createProvider(TwilioProvider, { - accountSid: 'YOUR_ACCOUNT_SID', - authToken: 'YOUR_ACCOUNT_TOKEN', - vendorNumber: '+14155238886', + const adapterProvider = createProvider(MetaProvider, { + jwtToken: 'jwtToken', + numberId: 'numberId', + verifyToken: 'verifyToken', }) createBot({ diff --git a/starters/apps/base-meta-memory/package.json b/starters/apps/base-meta-memory/package.json index af95cf3..f86e916 100644 --- a/starters/apps/base-meta-memory/package.json +++ b/starters/apps/base-meta-memory/package.json @@ -14,7 +14,8 @@ "@bot-whatsapp/bot": "latest", "@bot-whatsapp/cli": "latest", "@bot-whatsapp/database": "latest", - "@bot-whatsapp/provider": "latest" + "@bot-whatsapp/provider": "latest", + "axios": "^1.2.1" }, "author": "", "license": "ISC" From 41e95a606dc376e0f4670325297b5ee19c237f1b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 29 Dec 2022 13:57:51 +0000 Subject: [PATCH 09/14] ci(version): :zap: automatic - "${date}" updated versions every packages --- packages/bot/package.json | 2 +- packages/cli/package.json | 2 +- packages/create-bot-whatsapp/package.json | 2 +- packages/database/package.json | 2 +- packages/docs/src/routes/docs/join/index.mdx | 7 +++---- packages/provider/package.json | 2 +- 6 files changed, 8 insertions(+), 9 deletions(-) diff --git a/packages/bot/package.json b/packages/bot/package.json index 6c473c8..87d283b 100644 --- a/packages/bot/package.json +++ b/packages/bot/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/bot", - "version": "0.0.27-alpha.0", + "version": "0.0.28-alpha.0", "description": "", "main": "./lib/bundle.bot.cjs", "scripts": { diff --git a/packages/cli/package.json b/packages/cli/package.json index 07c47f9..5a678c4 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/cli", - "version": "0.0.34-alpha.0", + "version": "0.0.35-alpha.0", "description": "", "main": "index.js", "devDependencies": { diff --git a/packages/create-bot-whatsapp/package.json b/packages/create-bot-whatsapp/package.json index d9e0a92..2386b2e 100644 --- a/packages/create-bot-whatsapp/package.json +++ b/packages/create-bot-whatsapp/package.json @@ -1,6 +1,6 @@ { "name": "create-bot-whatsapp", - "version": "0.0.45-alpha.0", + "version": "0.0.46-alpha.0", "description": "", "main": "./lib/bundle.create-bot-whatsapp.cjs", "files": [ diff --git a/packages/database/package.json b/packages/database/package.json index a29afab..a79d823 100644 --- a/packages/database/package.json +++ b/packages/database/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/database", - "version": "0.0.26-alpha.0", + "version": "0.0.27-alpha.0", "description": "Esto es el conector a mysql, pg, mongo", "main": "./lib/mock/index.cjs", "keywords": [], diff --git a/packages/docs/src/routes/docs/join/index.mdx b/packages/docs/src/routes/docs/join/index.mdx index 4d4a99b..90ca067 100644 --- a/packages/docs/src/routes/docs/join/index.mdx +++ b/packages/docs/src/routes/docs/join/index.mdx @@ -4,7 +4,7 @@ Bienvenido al proyecto! Estamos emocionados de tenerte a bordo y esperamos traba Deseamos que te sientas cómodo y que puedas aportar tu valioso conocimiento y habilidades. -Recuerda que si tienes alguna inquietud, o simplemente deseas interactuar con los otros colaboradores puedes unirte a la comunidad. +Recuerda que si tienes alguna inquietud, o simplemente deseas interactuar con los otros colaboradores puedes unirte a la comunidad. ## Ventajas al unirme @@ -14,12 +14,11 @@ Al unirte te estará brindando la oportunidad de **adquirir experiencia en el de La visibilidad es uno de los puntos que más se requieren hoy en día, al unirte se te brinda la oportunidad de **mayor visibilidad en la comunidad de desarrolladores y de demostrar tus habilidades**. Esto puede ayudarte a encontrar oportunidades de trabajo o a colaborar con otros proyectos. -Colaboración con otros desarrolladores de todo el mundo y **trabajar juntos para mejorar el proyecto** Al trabajar en equipo y colaborar con otros, podrás mejorar tu comunicación, resolución de problemas y liderazgo, habilidades que cada vez son más demandadas en el entorno laboral. +Colaboración con otros desarrolladores de todo el mundo y **trabajar juntos para mejorar el proyecto** Al trabajar en equipo y colaborar con otros, podrás mejorar tu comunicación, resolución de problemas y liderazgo, habilidades que cada vez son más demandadas en el entorno laboral. Contribución al bien común Participar en un proyecto de código abierto te permite contribuir a la comunidad y a la sociedad en general, ya que el código abierto es accesible y utilizable por cualquier persona. **Esto puede ser muy gratificante y sentirte parte de algo más grande**. -Es una excelente manera de incrementar tus habilidades tecnológicas y **estar al tanto de las últimas tendencias y desarrollos en el mundo del software**. Al trabajar con otros desarrolladores y contribuir a proyectos de código abierto, tendrás la oportunidad de **aprender y practicar nuevas tecnologías y metodologías, lo que te ayudará a mejorar tus habilidades y a mantenerte actualizado en el mundo en constante cambio de la tecnología. - +Es una excelente manera de incrementar tus habilidades tecnológicas y **estar al tanto de las últimas tendencias y desarrollos en el mundo del software**. Al trabajar con otros desarrolladores y contribuir a proyectos de código abierto, tendrás la oportunidad de \*\*aprender y practicar nuevas tecnologías y metodologías, lo que te ayudará a mejorar tus habilidades y a mantenerte actualizado en el mundo en constante cambio de la tecnología. Esperamos que estés listo para **unirte a nosotros en esta emocionante aventura** diff --git a/packages/provider/package.json b/packages/provider/package.json index c3d77ea..7bc108b 100644 --- a/packages/provider/package.json +++ b/packages/provider/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/provider", - "version": "0.0.32-alpha.0", + "version": "0.0.33-alpha.0", "description": "Esto es el conector a Twilio, Meta, etc...", "main": "./lib/mock/index.cjs", "keywords": [], From 20f665175c9b47226df41ce43e05574bd6ab1930 Mon Sep 17 00:00:00 2001 From: vicente1992 Date: Fri, 30 Dec 2022 07:24:29 -0500 Subject: [PATCH 10/14] fix(starters): base templates are added for meta --- packages/provider/src/meta/server.js | 2 +- starters/apps/base-meta-json/README.md | 34 +++++++ starters/apps/base-meta-json/app.js | 95 ++++++++++++++++++ starters/apps/base-meta-json/package.json | 22 +++++ starters/apps/base-meta-mongo/README.md | 34 +++++++ starters/apps/base-meta-mongo/app.js | 106 ++++++++++++++++++++ starters/apps/base-meta-mongo/package.json | 23 +++++ starters/apps/base-meta-mysql/README.md | 34 +++++++ starters/apps/base-meta-mysql/app.js | 108 +++++++++++++++++++++ starters/apps/base-meta-mysql/package.json | 23 +++++ 10 files changed, 480 insertions(+), 1 deletion(-) create mode 100644 starters/apps/base-meta-json/README.md create mode 100644 starters/apps/base-meta-json/app.js create mode 100644 starters/apps/base-meta-json/package.json create mode 100644 starters/apps/base-meta-mongo/README.md create mode 100644 starters/apps/base-meta-mongo/app.js create mode 100644 starters/apps/base-meta-mongo/package.json create mode 100644 starters/apps/base-meta-mysql/README.md create mode 100644 starters/apps/base-meta-mysql/app.js create mode 100644 starters/apps/base-meta-mysql/package.json diff --git a/packages/provider/src/meta/server.js b/packages/provider/src/meta/server.js index 85e0403..3d6ef61 100644 --- a/packages/provider/src/meta/server.js +++ b/packages/provider/src/meta/server.js @@ -34,7 +34,7 @@ class MetaWebHookServer extends EventEmitter { this.emit('message', { from: message.from, to, - body: message.text.body, + body: message.text?.body, }) const json = JSON.stringify({ body }) res.end(json) diff --git a/starters/apps/base-meta-json/README.md b/starters/apps/base-meta-json/README.md new file mode 100644 index 0000000..d0e43d2 --- /dev/null +++ b/starters/apps/base-meta-json/README.md @@ -0,0 +1,34 @@ +### CHATBOT Whatsapp + +Este bot es una aplicación que puedes vincular con tu whatsapp y crear flujos para automatizar tareas en tu negocio o procesos repetitivos. + +Este bot contiene un flujo básico en el cual una persona (cliente) escribe **"hola"** y el bot responde: +- Bienvenido a mi tienda +- ¿Como puedo ayudarte? +- Tengo: Zapatos, Bolsos etc.. + +__Iniciar__ + +Los flujos se declaran de atrás para adelante, es decir que si tienes un flujo de este tipo: + + Menu Principal + - SubMenu 1 + - Submenu 1.1 + - Submenu 2 + - Submenu 2.1 + +Primero se declaran los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. + +``` +npm install +npm start +``` + +__¿Tienes problemas?:__ [Abrir Issue](https://github.com/codigoencasa/bot-whatsapp/issues/new/choose) + +------ +> ¿Quieres se parte de este proyecto? +> - [Discord](https://link.codigoencasa.com/DISCORD) +> - [Twitter](https://twitter.com/leifermendez) +> - [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR) +> - [Telegram](https://t.me/leifermendez) diff --git a/starters/apps/base-meta-json/app.js b/starters/apps/base-meta-json/app.js new file mode 100644 index 0000000..506ef6f --- /dev/null +++ b/starters/apps/base-meta-json/app.js @@ -0,0 +1,95 @@ +const { + createBot, + createProvider, + createFlow, + addKeyword, + addChild, +} = require('@bot-whatsapp/bot') + +const MetaProvider = require('@bot-whatsapp/provider/meta') +const JsonFileAdapter = require('@bot-whatsapp/database/json') + +/** + * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo: + * + * Menu Principal + * - SubMenu 1 + * - Submenu 1.1 + * - Submenu 2 + * - Submenu 2.1 + * + * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. + */ + +const flowBolsos2 = addKeyword(['bolsos2', '2']) + .addAnswer('🤯 *MUCHOS* bolsos ...') + .addAnswer('y mas bolsos... bla bla') + +const flowZapatos2 = addKeyword(['zapatos2', '2']) + .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.') + .addAnswer('y algunas otras cosas.') + +const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS']) + .addAnswer('🤯 Veo que elegiste zapatos') + .addAnswer('Tengo muchos zapatos...bla bla') + .addAnswer( + ['Manda:', '*(2) Zapatos2*', 'para mas información'], + { capture: true }, + (ctx) => { + console.log('Aqui puedes ver más info del usuario...') + console.log('Puedes enviar un mail, hook, etc..') + console.log(ctx) + }, + [...addChild(flowZapatos2)] + ) + +const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS']) + .addAnswer('🙌 Veo que elegiste bolsos') + .addAnswer('Tengo muchos bolsos...bla bla') + .addAnswer( + ['Manda:', '*(2) Bolsos2*', 'para mas información.'], + { capture: true }, + (ctx) => { + console.log('Aqui puedes ver más info del usuario...') + console.log('Puedes enviar un mail, hook, etc..') + console.log(ctx) + }, + [...addChild(flowBolsos2)] + ) + +/** + * Declarando flujo principal + */ + +const flowPrincipal = addKeyword(['hola', 'ole', 'alo']) + .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?']) + .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...']) + .addAnswer( + ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'], + { capture: true }, + (ctx) => { + console.log('Aqui puedes ver más info del usuario...') + console.log('Puedes enviar un mail, hook, etc..') + console.log(ctx) + }, + [...addChild(flowBolsos), ...addChild(flowZapatos)] + ) + +const main = async () => { + const adapterDB = new JsonFileAdapter() + const adapterFlow = createFlow([flowPrincipal]) + + const adapterProvider = createProvider(MetaProvider, { + jwtToken: 'jwtToken', + numberId: 'numberId', + verifyToken: 'verifyToken', + }) + + createBot({ + flow: adapterFlow, + provider: adapterProvider, + database: adapterDB, + }) +} + +main() diff --git a/starters/apps/base-meta-json/package.json b/starters/apps/base-meta-json/package.json new file mode 100644 index 0000000..3243406 --- /dev/null +++ b/starters/apps/base-meta-json/package.json @@ -0,0 +1,22 @@ +{ + "name": "bot-whatsapp-base-meta-json", + "version": "1.0.0", + "description": "", + "main": "app.js", + "scripts": { + "pre-copy": "cd .. && yarn run copy.lib base-meta-json", + "start": "node app.js" + }, + "keywords": [], + "dependencies": { + "body-parser": "^1.20.1", + "polka": "^0.5.2", + "@bot-whatsapp/bot": "latest", + "@bot-whatsapp/cli": "latest", + "@bot-whatsapp/database": "latest", + "@bot-whatsapp/provider": "latest", + "axios": "^1.2.1" + }, + "author": "", + "license": "ISC" +} diff --git a/starters/apps/base-meta-mongo/README.md b/starters/apps/base-meta-mongo/README.md new file mode 100644 index 0000000..d0e43d2 --- /dev/null +++ b/starters/apps/base-meta-mongo/README.md @@ -0,0 +1,34 @@ +### CHATBOT Whatsapp + +Este bot es una aplicación que puedes vincular con tu whatsapp y crear flujos para automatizar tareas en tu negocio o procesos repetitivos. + +Este bot contiene un flujo básico en el cual una persona (cliente) escribe **"hola"** y el bot responde: +- Bienvenido a mi tienda +- ¿Como puedo ayudarte? +- Tengo: Zapatos, Bolsos etc.. + +__Iniciar__ + +Los flujos se declaran de atrás para adelante, es decir que si tienes un flujo de este tipo: + + Menu Principal + - SubMenu 1 + - Submenu 1.1 + - Submenu 2 + - Submenu 2.1 + +Primero se declaran los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. + +``` +npm install +npm start +``` + +__¿Tienes problemas?:__ [Abrir Issue](https://github.com/codigoencasa/bot-whatsapp/issues/new/choose) + +------ +> ¿Quieres se parte de este proyecto? +> - [Discord](https://link.codigoencasa.com/DISCORD) +> - [Twitter](https://twitter.com/leifermendez) +> - [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR) +> - [Telegram](https://t.me/leifermendez) diff --git a/starters/apps/base-meta-mongo/app.js b/starters/apps/base-meta-mongo/app.js new file mode 100644 index 0000000..8cf05d6 --- /dev/null +++ b/starters/apps/base-meta-mongo/app.js @@ -0,0 +1,106 @@ +const { + createBot, + createProvider, + createFlow, + addKeyword, + addChild, +} = require('@bot-whatsapp/bot') + +const MetaProvider = require('@bot-whatsapp/provider/meta') +const MongoAdapter = require('@bot-whatsapp/database/mongo') + +/** + * Declaramos las conexiones de Mongo + */ + +const MONGO_DB_URI = 'mongodb://0.0.0.0:27017' +const MONGO_DB_NAME = 'db_bot' + +/** + * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo: + * + * Menu Principal + * - SubMenu 1 + * - Submenu 1.1 + * - Submenu 2 + * - Submenu 2.1 + * + * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. + */ + +const flowBolsos2 = addKeyword(['bolsos2', '2']) + .addAnswer('🤯 *MUCHOS* bolsos ...') + .addAnswer('y mas bolsos... bla bla') + +const flowZapatos2 = addKeyword(['zapatos2', '2']) + .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.') + .addAnswer('y algunas otras cosas.') + +const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS']) + .addAnswer('🤯 Veo que elegiste zapatos') + .addAnswer('Tengo muchos zapatos...bla bla') + .addAnswer( + ['Manda:', '*(2) Zapatos2*', 'para mas información'], + { capture: true }, + (ctx) => { + console.log('Aqui puedes ver más info del usuario...') + console.log('Puedes enviar un mail, hook, etc..') + console.log(ctx) + }, + [...addChild(flowZapatos2)] + ) + +const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS']) + .addAnswer('🙌 Veo que elegiste bolsos') + .addAnswer('Tengo muchos bolsos...bla bla') + .addAnswer( + ['Manda:', '*(2) Bolsos2*', 'para mas información.'], + { capture: true }, + (ctx) => { + console.log('Aqui puedes ver más info del usuario...') + console.log('Puedes enviar un mail, hook, etc..') + console.log(ctx) + }, + [...addChild(flowBolsos2)] + ) + +/** + * Declarando flujo principal + */ + +const flowPrincipal = addKeyword(['hola', 'ole', 'alo']) + .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?']) + .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...']) + .addAnswer( + ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'], + { capture: true }, + (ctx) => { + console.log('Aqui puedes ver más info del usuario...') + console.log('Puedes enviar un mail, hook, etc..') + console.log(ctx) + }, + [...addChild(flowBolsos), ...addChild(flowZapatos)] + ) + +const main = async () => { + const adapterDB = new MongoAdapter({ + dbUri: MONGO_DB_URI, + dbName: MONGO_DB_NAME, + }) + + const adapterFlow = createFlow([flowPrincipal]) + + const adapterProvider = createProvider(MetaProvider, { + jwtToken: 'jwtToken', + numberId: 'numberId', + verifyToken: 'verifyToken', + }) + + createBot({ + flow: adapterFlow, + provider: adapterProvider, + database: adapterDB, + }) +} + +main() diff --git a/starters/apps/base-meta-mongo/package.json b/starters/apps/base-meta-mongo/package.json new file mode 100644 index 0000000..94055f8 --- /dev/null +++ b/starters/apps/base-meta-mongo/package.json @@ -0,0 +1,23 @@ +{ + "name": "bot-whatsapp-base-meta-mongo", + "version": "1.0.0", + "description": "", + "main": "app.js", + "scripts": { + "pre-copy": "cd .. && yarn run copy.lib base-meta-mongo", + "start": "node app.js" + }, + "keywords": [], + "dependencies": { + "body-parser": "^1.20.1", + "polka": "^0.5.2", + "@bot-whatsapp/bot": "latest", + "@bot-whatsapp/cli": "latest", + "@bot-whatsapp/database": "latest", + "@bot-whatsapp/provider": "latest", + "axios": "^1.2.1", + "mongodb": "^4.12.1" + }, + "author": "", + "license": "ISC" +} diff --git a/starters/apps/base-meta-mysql/README.md b/starters/apps/base-meta-mysql/README.md new file mode 100644 index 0000000..d0e43d2 --- /dev/null +++ b/starters/apps/base-meta-mysql/README.md @@ -0,0 +1,34 @@ +### CHATBOT Whatsapp + +Este bot es una aplicación que puedes vincular con tu whatsapp y crear flujos para automatizar tareas en tu negocio o procesos repetitivos. + +Este bot contiene un flujo básico en el cual una persona (cliente) escribe **"hola"** y el bot responde: +- Bienvenido a mi tienda +- ¿Como puedo ayudarte? +- Tengo: Zapatos, Bolsos etc.. + +__Iniciar__ + +Los flujos se declaran de atrás para adelante, es decir que si tienes un flujo de este tipo: + + Menu Principal + - SubMenu 1 + - Submenu 1.1 + - Submenu 2 + - Submenu 2.1 + +Primero se declaran los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. + +``` +npm install +npm start +``` + +__¿Tienes problemas?:__ [Abrir Issue](https://github.com/codigoencasa/bot-whatsapp/issues/new/choose) + +------ +> ¿Quieres se parte de este proyecto? +> - [Discord](https://link.codigoencasa.com/DISCORD) +> - [Twitter](https://twitter.com/leifermendez) +> - [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR) +> - [Telegram](https://t.me/leifermendez) diff --git a/starters/apps/base-meta-mysql/app.js b/starters/apps/base-meta-mysql/app.js new file mode 100644 index 0000000..796f9ba --- /dev/null +++ b/starters/apps/base-meta-mysql/app.js @@ -0,0 +1,108 @@ +const { + createBot, + createProvider, + createFlow, + addKeyword, + addChild, +} = require('@bot-whatsapp/bot') + +const MetaProvider = require('@bot-whatsapp/provider/meta') +const MySQLAdapter = require('@bot-whatsapp/database/mysql') + +/** + * Declaramos las conexiones de MySQL + */ +const MYSQL_DB_HOST = 'localhost' +const MYSQL_DB_USER = 'usr' +const MYSQL_DB_PASSWORD = 'pass' +const MYSQL_DB_NAME = 'bot' + +/** + * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo: + * + * Menu Principal + * - SubMenu 1 + * - Submenu 1.1 + * - Submenu 2 + * - Submenu 2.1 + * + * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal. + */ + +const flowBolsos2 = addKeyword(['bolsos2', '2']) + .addAnswer('🤯 *MUCHOS* bolsos ...') + .addAnswer('y mas bolsos... bla bla') + +const flowZapatos2 = addKeyword(['zapatos2', '2']) + .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.') + .addAnswer('y algunas otras cosas.') + +const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS']) + .addAnswer('🤯 Veo que elegiste zapatos') + .addAnswer('Tengo muchos zapatos...bla bla') + .addAnswer( + ['Manda:', '*(2) Zapatos2*', 'para mas información'], + { capture: true }, + (ctx) => { + console.log('Aqui puedes ver más info del usuario...') + console.log('Puedes enviar un mail, hook, etc..') + console.log(ctx) + }, + [...addChild(flowZapatos2)] + ) + +const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS']) + .addAnswer('🙌 Veo que elegiste bolsos') + .addAnswer('Tengo muchos bolsos...bla bla') + .addAnswer( + ['Manda:', '*(2) Bolsos2*', 'para mas información.'], + { capture: true }, + (ctx) => { + console.log('Aqui puedes ver más info del usuario...') + console.log('Puedes enviar un mail, hook, etc..') + console.log(ctx) + }, + [...addChild(flowBolsos2)] + ) + +/** + * Declarando flujo principal + */ + +const flowPrincipal = addKeyword(['hola', 'ole', 'alo']) + .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?']) + .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...']) + .addAnswer( + ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'], + { capture: true }, + (ctx) => { + console.log('Aqui puedes ver más info del usuario...') + console.log('Puedes enviar un mail, hook, etc..') + console.log(ctx) + }, + [...addChild(flowBolsos), ...addChild(flowZapatos)] + ) + +const main = async () => { + const adapterDB = new MySQLAdapter({ + host: MYSQL_DB_HOST, + user: MYSQL_DB_USER, + database: MYSQL_DB_NAME, + password: MYSQL_DB_PASSWORD, + }) + const adapterFlow = createFlow([flowPrincipal]) + + const adapterProvider = createProvider(MetaProvider, { + jwtToken: 'jwtToken', + numberId: 'numberId', + verifyToken: 'verifyToken', + }) + + createBot({ + flow: adapterFlow, + provider: adapterProvider, + database: adapterDB, + }) +} + +main() diff --git a/starters/apps/base-meta-mysql/package.json b/starters/apps/base-meta-mysql/package.json new file mode 100644 index 0000000..a9a71b0 --- /dev/null +++ b/starters/apps/base-meta-mysql/package.json @@ -0,0 +1,23 @@ +{ + "name": "bot-whatsapp-base-meta-mysql", + "version": "1.0.0", + "description": "", + "main": "app.js", + "scripts": { + "pre-copy": "cd .. && yarn run copy.lib base-meta-mysql", + "start": "node app.js" + }, + "keywords": [], + "dependencies": { + "body-parser": "^1.20.1", + "polka": "^0.5.2", + "@bot-whatsapp/bot": "latest", + "@bot-whatsapp/cli": "latest", + "@bot-whatsapp/database": "latest", + "@bot-whatsapp/provider": "latest", + "axios": "^1.2.1", + "mysql2": "^2.3.3" + }, + "author": "", + "license": "ISC" +} From ee5b69dbf3b4090e4cb9175c2a75578ac33b10b2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 30 Dec 2022 18:45:58 +0000 Subject: [PATCH 11/14] ci(version): :zap: automatic - "${date}" updated versions every packages --- packages/bot/package.json | 2 +- packages/cli/package.json | 2 +- packages/create-bot-whatsapp/package.json | 2 +- packages/database/package.json | 2 +- packages/provider/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/bot/package.json b/packages/bot/package.json index 87d283b..94ea8ad 100644 --- a/packages/bot/package.json +++ b/packages/bot/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/bot", - "version": "0.0.28-alpha.0", + "version": "0.0.29-alpha.0", "description": "", "main": "./lib/bundle.bot.cjs", "scripts": { diff --git a/packages/cli/package.json b/packages/cli/package.json index 5a678c4..3f86f72 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/cli", - "version": "0.0.35-alpha.0", + "version": "0.0.36-alpha.0", "description": "", "main": "index.js", "devDependencies": { diff --git a/packages/create-bot-whatsapp/package.json b/packages/create-bot-whatsapp/package.json index 2386b2e..9c2358f 100644 --- a/packages/create-bot-whatsapp/package.json +++ b/packages/create-bot-whatsapp/package.json @@ -1,6 +1,6 @@ { "name": "create-bot-whatsapp", - "version": "0.0.46-alpha.0", + "version": "0.0.47-alpha.0", "description": "", "main": "./lib/bundle.create-bot-whatsapp.cjs", "files": [ diff --git a/packages/database/package.json b/packages/database/package.json index a79d823..71404ba 100644 --- a/packages/database/package.json +++ b/packages/database/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/database", - "version": "0.0.27-alpha.0", + "version": "0.0.28-alpha.0", "description": "Esto es el conector a mysql, pg, mongo", "main": "./lib/mock/index.cjs", "keywords": [], diff --git a/packages/provider/package.json b/packages/provider/package.json index 7bc108b..7714e30 100644 --- a/packages/provider/package.json +++ b/packages/provider/package.json @@ -1,6 +1,6 @@ { "name": "@bot-whatsapp/provider", - "version": "0.0.33-alpha.0", + "version": "0.0.34-alpha.0", "description": "Esto es el conector a Twilio, Meta, etc...", "main": "./lib/mock/index.cjs", "keywords": [], From b659cc9b153ea5d34533860e8778a8bf2352a67d Mon Sep 17 00:00:00 2001 From: marianarolfo <68322254+marianarolfo@users.noreply.github.com> Date: Sat, 31 Dec 2022 13:47:52 +0100 Subject: [PATCH 12/14] docs(README): updated, style --- README.md | 128 +++++++++++++----------------------------------------- 1 file changed, 30 insertions(+), 98 deletions(-) diff --git a/README.md b/README.md index 8b4bc67..208bde0 100644 --- a/README.md +++ b/README.md @@ -1,102 +1,34 @@ -[![Test / Coverage](https://github.com/leifermendez/bot-whatsapp/actions/workflows/ci.yml/badge.svg)](https://github.com/leifermendez/bot-whatsapp/actions/workflows/ci.yml) +# Chatbot Library +![](https://img.shields.io/npm/v/@bot-whatsapp/bot?color=%2300c200&label=%40bot-whatsapp) [![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/) --------- -## Documentacion -[https://bot-whatsapp.netlify.app/](https://bot-whatsapp.netlify.app/) - -🐤 Tablero de tareas : [https://github.com/users/leifermendez/projects/4/views/1](https://github.com/users/leifermendez/projects/4/views/1) - -🚀 __Roadmap:__ [https://github.com/users/leifermendez/projects/4/views/1](https://github.com/users/leifermendez/projects/4/views/1) +[![BotWhatsapp Releases(Prod)](https://github.com/codigoencasa/bot-whatsapp/actions/workflows/releases.yml/badge.svg)](https://github.com/codigoencasa/bot-whatsapp/actions/workflows/releases.yml) -**Comunidad** + +
+ + +**Con esta librería, puedes construir flujos automatizados de conversación de manera agnóstica al proveedor de WhatsApp,** configurar respuestas automatizadas para preguntas frecuentes, recibir y responder mensajes de manera automatizada, y hacer un seguimiento de las interacciones con los clientes.  Además, puedes configurar fácilmente disparadores que te ayudaran a expandir las funcionalidades sin límites. + +## Comenzar + +``` +npm create bot-whatsapp@latest +``` + +Entiende más a fondo sus funcionalidades explicadas en nuestra documentación. + +- Instalacion +- Base de datos +- Proveedores + +## Recursos +- [📄 Documentación](https://bot-whatsapp.netlify.app/) +- [🚀 Roadmap](https://github.com/orgs/codigoencasa/projects/1) +- [💻 Discord](https://link.codigoencasa.com/DISCORD) +- [👌 Twitter](https://twitter.com/leifermendez) +- [🎥 Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR) + +## Comunidad - - - - - - - - - - - - - - -
- - leifermendez -
- Leifer Mendez -
-
- - aurik3 -
- Null -
-
- - vicente1992 -
- Manuel Vicente Ortiz -
-
- - leifermendezfroged -
- Leifer Mendez -
-
- - HKong31 -
- Null -
-
- - jzvi12 -
- Zvi -
-
- - Gonzalito87 -
- Null -
-
- - tonyvazgar -
- Luis Antonio Vázquez García -
-
- - ulisesvina -
- Ulises Viña -
-
- - rrruuuyyy -
- Rodrigo Mendoza Cabrera -
-
- - yond1994 -
- Yonathan Suarez -
-
- - -> Forma parte de este proyecto. - -- [Discord](https://link.codigoencasa.com/DISCORD) -- [Twitter](https://twitter.com/leifermendez) -- [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR) -- [Telegram](https://t.me/leifermendez) + \ No newline at end of file From 5633f7c71c12b375868daceaf422cbd5f10b72e7 Mon Sep 17 00:00:00 2001 From: marianarolfo <68322254+marianarolfo@users.noreply.github.com> Date: Sat, 31 Dec 2022 13:52:26 +0100 Subject: [PATCH 13/14] docs(READMED): update, style --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 208bde0..e0f6488 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ -
+
**Con esta librería, puedes construir flujos automatizados de conversación de manera agnóstica al proveedor de WhatsApp,** configurar respuestas automatizadas para preguntas frecuentes, recibir y responder mensajes de manera automatizada, y hacer un seguimiento de las interacciones con los clientes.  Además, puedes configurar fácilmente disparadores que te ayudaran a expandir las funcionalidades sin límites. @@ -31,4 +31,6 @@ Entiende más a fondo sus funcionalidades explicadas en nuestra documentación. ## Comunidad - \ No newline at end of file + + + From aff9f19d8e289febf1cec041aa037f8d3846c489 Mon Sep 17 00:00:00 2001 From: marianarolfo <68322254+marianarolfo@users.noreply.github.com> Date: Sat, 31 Dec 2022 14:10:39 +0100 Subject: [PATCH 14/14] add info install node --- packages/docs/src/routes/docs/install/index.mdx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/docs/src/routes/docs/install/index.mdx b/packages/docs/src/routes/docs/install/index.mdx index 97614d6..cf23f33 100644 --- a/packages/docs/src/routes/docs/install/index.mdx +++ b/packages/docs/src/routes/docs/install/index.mdx @@ -6,6 +6,11 @@ A continuación se describen los puntos técnicos que debes de tener en cuenta a - Node v16 o superior **[descargar node](https://nodejs.org/es/download/)** +## ¿Como instalar Node en Windows? +https://youtu.be/xRXHQlqA3Ak?t=376 + +## ¿Como instalar Node en Ubuntu? +Te comparto un recurso de **[Digital Ocean](https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-20-04-es)** donde explica como instalar node en Ubuntu. ## ¿Como saber que tengo el Node? Solo debes ejecutar el siguiente comando y esperar que la versión que te arroja sea superior a v16