mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-17 19:26:23 +00:00
feat(bot): ⚡ rev-03 everything work fine
This commit is contained in:
@@ -12,7 +12,8 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@bot-whatsapp/bot": "*",
|
"@bot-whatsapp/bot": "*",
|
||||||
"combine-image": "^1.0.3",
|
"combine-image": "^1.0.3",
|
||||||
"qr-image": "^3.2.0"
|
"qr-image": "^3.2.0",
|
||||||
|
"rimraf": "^3.0.2"
|
||||||
},
|
},
|
||||||
"exports": {
|
"exports": {
|
||||||
"./mock": "./lib/mock/index.cjs",
|
"./mock": "./lib/mock/index.cjs",
|
||||||
|
|||||||
34
starters/apps/base-baileys-json/README.md
Normal file
34
starters/apps/base-baileys-json/README.md
Normal file
@@ -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)
|
||||||
88
starters/apps/base-baileys-json/app.js
Normal file
88
starters/apps/base-baileys-json/app.js
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
const {
|
||||||
|
createBot,
|
||||||
|
createProvider,
|
||||||
|
createFlow,
|
||||||
|
addKeyword,
|
||||||
|
} = require('@bot-whatsapp/bot')
|
||||||
|
|
||||||
|
const BaileysProvider = require('@bot-whatsapp/provider/baileys')
|
||||||
|
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)
|
||||||
|
},
|
||||||
|
[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)
|
||||||
|
},
|
||||||
|
[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)
|
||||||
|
},
|
||||||
|
[flowBolsos, flowZapatos]
|
||||||
|
)
|
||||||
|
|
||||||
|
const main = async () => {
|
||||||
|
const adapterDB = new JsonFileAdapter()
|
||||||
|
const adapterFlow = createFlow([flowPrincipal])
|
||||||
|
const adapterProvider = createProvider(BaileysProvider)
|
||||||
|
createBot({
|
||||||
|
flow: adapterFlow,
|
||||||
|
provider: adapterProvider,
|
||||||
|
database: adapterDB,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
22
starters/apps/base-baileys-json/package.json
Normal file
22
starters/apps/base-baileys-json/package.json
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"name": "bot-whatsapp-base-bailey-json",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "",
|
||||||
|
"main": "app.js",
|
||||||
|
"scripts": {
|
||||||
|
"pre-copy": "cd .. && yarn run copy.lib base-baileys-json",
|
||||||
|
"start": "node app.js"
|
||||||
|
},
|
||||||
|
"keywords": [],
|
||||||
|
"dependencies": {
|
||||||
|
"@bot-whatsapp/bot": "latest",
|
||||||
|
"@bot-whatsapp/cli": "latest",
|
||||||
|
"@bot-whatsapp/database": "latest",
|
||||||
|
"@bot-whatsapp/provider": "latest",
|
||||||
|
"@adiwajshing/baileys": "4.4.0",
|
||||||
|
"mime-types": "2.1.35",
|
||||||
|
"wa-sticker-formatter": "4.3.2"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC"
|
||||||
|
}
|
||||||
34
starters/apps/base-twilio-json/README.md
Normal file
34
starters/apps/base-twilio-json/README.md
Normal file
@@ -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)
|
||||||
94
starters/apps/base-twilio-json/app.js
Normal file
94
starters/apps/base-twilio-json/app.js
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
const {
|
||||||
|
createBot,
|
||||||
|
createProvider,
|
||||||
|
createFlow,
|
||||||
|
addKeyword,
|
||||||
|
} = require('@bot-whatsapp/bot')
|
||||||
|
|
||||||
|
const TwilioProvider = require('@bot-whatsapp/provider/twilio')
|
||||||
|
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('<27> *MUCHOS* bolsos ...')
|
||||||
|
.addAnswer('y mas bolsos... bla bla')
|
||||||
|
|
||||||
|
const flowZapatos2 = addKeyword(['zapatos2', '2'])
|
||||||
|
.addAnswer('<27> repito que tengo *MUCHOS* zapatos.')
|
||||||
|
.addAnswer('y algunas otras cosas.')
|
||||||
|
|
||||||
|
const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
|
||||||
|
.addAnswer('<27> 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)
|
||||||
|
},
|
||||||
|
[flowZapatos2]
|
||||||
|
)
|
||||||
|
|
||||||
|
const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
|
||||||
|
.addAnswer('<27> 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)
|
||||||
|
},
|
||||||
|
[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)
|
||||||
|
},
|
||||||
|
[flowBolsos, flowZapatos]
|
||||||
|
)
|
||||||
|
|
||||||
|
const main = async () => {
|
||||||
|
const adapterDB = new JsonFileAdapter()
|
||||||
|
const adapterFlow = createFlow([flowPrincipal])
|
||||||
|
|
||||||
|
const adapterProvider = createProvider(TwilioProvider, {
|
||||||
|
accountSid: 'YOUR_ACCOUNT_SID',
|
||||||
|
authToken: 'YOUR_ACCOUNT_TOKEN',
|
||||||
|
vendorNumber: '+14155238886',
|
||||||
|
})
|
||||||
|
|
||||||
|
createBot({
|
||||||
|
flow: adapterFlow,
|
||||||
|
provider: adapterProvider,
|
||||||
|
database: adapterDB,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
22
starters/apps/base-twilio-json/package.json
Normal file
22
starters/apps/base-twilio-json/package.json
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"name": "bot-whatsapp-base-twilio-json",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "",
|
||||||
|
"main": "app.js",
|
||||||
|
"scripts": {
|
||||||
|
"pre-copy": "cd .. && yarn run copy.lib base-twilio-json",
|
||||||
|
"start": "node app.js"
|
||||||
|
},
|
||||||
|
"keywords": [],
|
||||||
|
"dependencies": {
|
||||||
|
"body-parser": "^1.20.1",
|
||||||
|
"polka": "^0.5.2",
|
||||||
|
"twilio": "3.84.0",
|
||||||
|
"@bot-whatsapp/bot": "latest",
|
||||||
|
"@bot-whatsapp/cli": "latest",
|
||||||
|
"@bot-whatsapp/database": "latest",
|
||||||
|
"@bot-whatsapp/provider": "latest"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC"
|
||||||
|
}
|
||||||
34
starters/apps/base-venom-json/README.md
Normal file
34
starters/apps/base-venom-json/README.md
Normal file
@@ -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)
|
||||||
88
starters/apps/base-venom-json/app.js
Normal file
88
starters/apps/base-venom-json/app.js
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
const {
|
||||||
|
createBot,
|
||||||
|
createProvider,
|
||||||
|
createFlow,
|
||||||
|
addKeyword,
|
||||||
|
} = require('@bot-whatsapp/bot')
|
||||||
|
|
||||||
|
const VenomProvider = require('@bot-whatsapp/provider/venom')
|
||||||
|
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('<27> *MUCHOS* bolsos ...')
|
||||||
|
.addAnswer('y mas bolsos... bla bla')
|
||||||
|
|
||||||
|
const flowZapatos2 = addKeyword(['zapatos2', '2'])
|
||||||
|
.addAnswer('<27> repito que tengo *MUCHOS* zapatos.')
|
||||||
|
.addAnswer('y algunas otras cosas.')
|
||||||
|
|
||||||
|
const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
|
||||||
|
.addAnswer('<27> 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)
|
||||||
|
},
|
||||||
|
[flowZapatos2]
|
||||||
|
)
|
||||||
|
|
||||||
|
const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
|
||||||
|
.addAnswer('<27> 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)
|
||||||
|
},
|
||||||
|
[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)
|
||||||
|
},
|
||||||
|
[flowBolsos, flowZapatos]
|
||||||
|
)
|
||||||
|
|
||||||
|
const main = async () => {
|
||||||
|
const adapterDB = new JsonFileAdapter()
|
||||||
|
const adapterFlow = createFlow([flowPrincipal])
|
||||||
|
const adapterProvider = createProvider(VenomProvider)
|
||||||
|
createBot({
|
||||||
|
flow: adapterFlow,
|
||||||
|
provider: adapterProvider,
|
||||||
|
database: adapterDB,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
21
starters/apps/base-venom-json/package.json
Normal file
21
starters/apps/base-venom-json/package.json
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"name": "bot-whatsapp-base-venom-json",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "",
|
||||||
|
"main": "app.js",
|
||||||
|
"scripts": {
|
||||||
|
"pre-copy": "cd .. && yarn run copy.lib base-venom-json",
|
||||||
|
"start": "node app.js"
|
||||||
|
},
|
||||||
|
"keywords": [],
|
||||||
|
"dependencies": {
|
||||||
|
"venom-bot": "4.3.7",
|
||||||
|
"@bot-whatsapp/bot": "latest",
|
||||||
|
"@bot-whatsapp/cli": "latest",
|
||||||
|
"@bot-whatsapp/database": "latest",
|
||||||
|
"@bot-whatsapp/provider": "latest",
|
||||||
|
"mime-types": "2.1.35"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC"
|
||||||
|
}
|
||||||
34
starters/apps/base-wweb-json/README.md
Normal file
34
starters/apps/base-wweb-json/README.md
Normal file
@@ -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)
|
||||||
88
starters/apps/base-wweb-json/app.js
Normal file
88
starters/apps/base-wweb-json/app.js
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
const {
|
||||||
|
createBot,
|
||||||
|
createProvider,
|
||||||
|
createFlow,
|
||||||
|
addKeyword,
|
||||||
|
} = require('@bot-whatsapp/bot')
|
||||||
|
|
||||||
|
const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
|
||||||
|
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('<27> *MUCHOS* bolsos ...')
|
||||||
|
.addAnswer('y mas bolsos... bla bla')
|
||||||
|
|
||||||
|
const flowZapatos2 = addKeyword(['zapatos2', '2'])
|
||||||
|
.addAnswer('<27> repito que tengo *MUCHOS* zapatos.')
|
||||||
|
.addAnswer('y algunas otras cosas.')
|
||||||
|
|
||||||
|
const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
|
||||||
|
.addAnswer('<27> 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)
|
||||||
|
},
|
||||||
|
[flowZapatos2]
|
||||||
|
)
|
||||||
|
|
||||||
|
const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
|
||||||
|
.addAnswer('<27> 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)
|
||||||
|
},
|
||||||
|
[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)
|
||||||
|
},
|
||||||
|
[flowBolsos, flowZapatos]
|
||||||
|
)
|
||||||
|
|
||||||
|
const main = async () => {
|
||||||
|
const adapterDB = new JsonFileAdapter()
|
||||||
|
const adapterFlow = createFlow([flowPrincipal])
|
||||||
|
const adapterProvider = createProvider(WebWhatsappProvider)
|
||||||
|
createBot({
|
||||||
|
flow: adapterFlow,
|
||||||
|
provider: adapterProvider,
|
||||||
|
database: adapterDB,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
20
starters/apps/base-wweb-json/package.json
Normal file
20
starters/apps/base-wweb-json/package.json
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"name": "bot-whatsapp-base-wweb-json",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "",
|
||||||
|
"main": "app.js",
|
||||||
|
"scripts": {
|
||||||
|
"pre-copy": "cd .. && yarn run copy.lib base-wweb-json",
|
||||||
|
"start": "node app.js"
|
||||||
|
},
|
||||||
|
"keywords": [],
|
||||||
|
"dependencies": {
|
||||||
|
"@bot-whatsapp/bot": "latest",
|
||||||
|
"@bot-whatsapp/cli": "latest",
|
||||||
|
"@bot-whatsapp/database": "latest",
|
||||||
|
"@bot-whatsapp/provider": "latest",
|
||||||
|
"whatsapp-web.js": "1.18.4"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user