[⚡] Api para envio de mensajes #774
Replies: 22 comments 5 replies
-
@eduardolat Buenas interesante tu enfoque afortunadamente ya puedes aprovechar esas funcionalidades te dejo un ejemplo const express = require('express')
const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot')
const BaileysProvider = require('@bot-whatsapp/provider/baileys')
const MockAdapter = require('@bot-whatsapp/database/mock')
const app = express()
const main = async () => {
const adapterDB = new MockAdapter()
const adapterFlow = createFlow([flowPrincipal])
const adapterProvider = createProvider(BaileysProvider)
createBot({
flow: adapterFlow,
provider: adapterProvider,
database: adapterDB,
})
/**
* Enviar mensaje con metodos propios del provider del bot
*/
app.post('/send-message-bot', async (req, res) => {
await adapterProvider.sendText('[email protected]', 'Mensaje desde API')
res.send({ data: 'enviado!' })
})
/**
* Enviar mensajes con metodos nativos del provider
*/
app.post('/send-message-provider', async (req, res) => {
const id = '[email protected]'
const templateButtons = [
{
index: 1,
urlButton: {
displayText: ':star: Star Baileys on GitHub!',
url: 'https://github.com/adiwajshing/Baileys',
},
},
{ index: 2, callButton: { displayText: 'Call me!', phoneNumber: '+1 (234) 5678-901' } },
{
index: 3,
quickReplyButton: {
displayText: 'This is a reply, just like normal buttons!',
id: 'id-like-buttons-message',
},
},
]
const templateMessage = {
text: "Hi it's a template message",
footer: 'Hello World',
templateButtons: templateButtons,
}
const abc = await adapterProvider.getInstance()
await abc.sendMessage(id, templateMessage)
res.send({ data: 'enviado!' })
})
const PORT = 4000
app.listen(PORT, () => console.log(`http://localhost:${PORT}`))
}
main() |
Beta Was this translation helpful? Give feedback.
-
Hola, @leifermendez como puedo validar que exista una session activa antes de enviar el mensaje, intente enviar el mensaje sin ninguna session y me sale este error |
Beta Was this translation helpful? Give feedback.
-
Lo solucione de esta forma: Cree esta validación para verificar si la sesión estaba creada
Luego la utilizo antes de llamar a la función del envió del mensaje:
|
Beta Was this translation helpful? Give feedback.
-
@leifermendez Muchas gracias por tu respuesta, tiene mucho sentido, ¿Crees que sería bueno documentarlo?, yo me puedo encargar de eso, tal vez en la sección, Avanzado > Providers API |
Beta Was this translation helpful? Give feedback.
-
@leifermendez This works on local machine but fails on deployment |
Beta Was this translation helpful? Give feedback.
-
y para el archivo principal
lo he resulto de esta manera para el archivo Bundle.bot.cjs
|
Beta Was this translation helpful? Give feedback.
-
y para escuchar si el cliente esta listo utilice este
|
Beta Was this translation helpful? Give feedback.
-
hola |
Beta Was this translation helpful? Give feedback.
-
quisiera enviar, a cualquier numero, sin imporetar si la seccion esta activa |
Beta Was this translation helpful? Give feedback.
-
me parece super interesante esto, pero si bien tengo algunos conocimientos de javascript y php no estoy familiarizado con express y node.js, de que manera podria agregar la funcionalidad de enviar mensajes con el bot a clientes que no iniciaron una conversacion? hay algun ejemplo funcional que sepueda probar con postman? gracias desde ya. |
Beta Was this translation helpful? Give feedback.
-
maybe you can save the messsage to database, tthen catch by the number sender to reply again. |
Beta Was this translation helpful? Give feedback.
-
any update then? |
Beta Was this translation helpful? Give feedback.
-
I am doing the same thing, I capture it, but it does not send me to the established number |
Beta Was this translation helpful? Give feedback.
-
Saludos @leifermendez he intentado replicar ese ejemplo, pero obtengo el siguiente error> No reconoce la función de envío.... Podrías orientarme mejor?? Gracias de antemano por la ayuda |
Beta Was this translation helpful? Give feedback.
-
Como puedo hacer que esto funcione en el deploy de railway? cree las endpoint en local funciona localhost:4000/sendMessge pero en railwind creando un dominio e ingresando al endpoint /sendMessage me dice que no existe la pagina :/ |
Beta Was this translation helpful? Give feedback.
-
lo resolvi const PORT = process.env.PORT || 4000; |
Beta Was this translation helpful? Give feedback.
-
realy need clear documentation about this. any update then? |
Beta Was this translation helpful? Give feedback.
-
@leifermendez podrias crear un tutorial para implementar lo del envio de mensajes y templates de mensajes? |
Beta Was this translation helpful? Give feedback.
-
leifer, como recibir parametros del numero y del mensaje desde postman? aunque pase los valors en el body no logro que los tome el bot |
Beta Was this translation helpful? Give feedback.
-
Buenas eso sucede porque estas usando tambien QRPortal entonces se utiliza
el puerto, te comparto el repo
https://github.com/leifermendez/bot-api-railway/blob/master/app.js
…On Thu, Aug 10, 2023 at 1:26 AM matgizu ***@***.***> wrote:
Hice tal como lo dices pero siempre me aparece que el puerto esta en uso
le he puesto muchisismos y no funciona
[image: image]
<https://user-images.githubusercontent.com/33757408/259573734-07458c71-4243-45f3-b19a-025a1d0f6d04.png>
—
Reply to this email directly, view it on GitHub
<#774 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADYR77TLH5WU7HRVUVWZBC3XUQMDJANCNFSM6AAAAAA3KV2LMM>
.
You are receiving this because you were mentioned.Message ID:
***@***.***
com>
|
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
App.post locos |
Beta Was this translation helpful? Give feedback.
-
🚩
Antes que nada, muchas gracias por el buen trabajo al hacer esta biblioteca 🫶
Describe tu problema
Sería muy bueno que la función
createBot
retornara un objeto con funciones para poder aprovechar la abstracción de envío de mensajes y poder reutilizar las implementaciones con los distintos proveedores que la biblioteca ya de por sí ofrece.Esto nos permitiría extender la funcionalidad de la biblioteca haciendo nuestras propias funciones sin necesidad de crear nuestras propias abstracciones sobre los proveedores, por ejemplo, podríamos tener un chatbot y un api de WhatsApp en el mismo proyecto, podríamos configurar webhooks, enviar a clientes notificaciones de su cuenta, pedidos, etc.
Es genial como
bot-whatsapp
puede intercambiar entre proveedores, sería genial poder combinar esa función con la propuestaInformación Adicional
Adjunto imagen con un ejemplo de como puede ser útil. No propongo agregar endpoints (¿o si?), solamente tener las funciones para poder hacerlo por cuenta propia.
Beta Was this translation helpful? Give feedback.
All reactions