codigoencasa / bot-whatsapp

🤖 Crear Chatbot WhatsApp en minutos. Únete a este proyecto OpenSource (Typescript Version Pronto)
https://bot-whatsapp.netlify.app
MIT License
2.21k stars 769 forks source link

[🐬] Responder un mensaje especifico #1010

Closed EmenetSistemas closed 4 months ago

EmenetSistemas commented 4 months ago

¿Cual proveedor usaste?

bailey

¿Cual base de datos usaste?

memory

Conclusion de la prueba

muy buena

Describe tu caso

Tengo duda de como es que se responde a un mensaje especifico desde el bot

Intento lo siguiente, pero no encuentro más infromación, alguna sugerencia o comentario que mepueda ayudar

await provider.sendMessage(ctx.from+'@c.us', { text: 'Gracias por enviar la imagen' }, { quoted: ctx });

¿Logs Importantes?

C:\Users\Adrian\Documents\Trabajo\Emenet\chatbot\node_modules\@whiskeysockets\baileys\lib\Utils\messages.js:41
    return (!Defaults_1.URL_EXCLUDE_REGEX.test(text) ? (_a = text.match(Defaults_1.URL_REGEX)) === null || _a === void 0 ? void 0 : _a[0] : undefined);
                                                                  ^

TypeError: text.match is not a function
    at extractUrlFromText (C:\Users\Adrian\Documents\Trabajo\Emenet\chatbot\node_modules\@whiskeysockets\baileys\lib\Utils\messages.js:41:67)
    at generateLinkPreviewIfRequired (C:\Users\Adrian\Documents\Trabajo\Emenet\chatbot\node_modules\@whiskeysockets\baileys\lib\Utils\messages.js:45:48)
    at generateWAMessageContent (C:\Users\Adrian\Documents\Trabajo\Emenet\chatbot\node_modules\@whiskeysockets\baileys\lib\Utils\messages.js:246:71)
    at generateWAMessage (C:\Users\Adrian\Documents\Trabajo\Emenet\chatbot\node_modules\@whiskeysockets\baileys\lib\Utils\messages.js:507:102)
    at Object.sendMessage (C:\Users\Adrian\Documents\Trabajo\Emenet\chatbot\node_modules\@whiskeysockets\baileys\lib\Socket\messages-send.js:614:69)
    at BaileysProvider.sendText (C:\Users\Adrian\Documents\Trabajo\Emenet\chatbot\node_modules\@bot-whatsapp\provider\lib\baileys\index.cjs:645:28)
    at BaileysProvider.sendMessage (C:\Users\Adrian\Documents\Trabajo\Emenet\chatbot\node_modules\@bot-whatsapp\provider\lib\baileys\index.cjs:736:21)
    at Object.ans_a5ac13b6-ad91-4553-b65a-80c3bd021877 (C:\Users\Adrian\Documents\Trabajo\Emenet\chatbot\src\flow\client\flowRegistrarComprobantePago.js:13:28)
    at runContext (C:\Users\Adrian\Documents\Trabajo\Emenet\chatbot\node_modules\@bot-whatsapp\bot\lib\bundle.bot.cjs:1444:57)
    at cbEveryCtx (C:\Users\Adrian\Documents\Trabajo\Emenet\chatbot\node_modules\@bot-whatsapp\bot\lib\bundle.bot.cjs:1471:19)

Node.js v18.13.0

Información Adicional

No response

¿Quieres que te mencionemos?

No response

ozzyoss77 commented 4 months ago

Estas usando mal la función, la sintaxis correcta es:

await provider.sendMessage(${ctx.from}@c.us, 'Aca el mensaje', {esto es las options para envios multimedia, no se necesita si mandas texto})

Ya se tiene un función para el envío de texto:

await provider.sendText(${ctx.from}@c.us, 'mensaje')

Cierro issue

rodrimarchese commented 4 months ago

@ozzyoss77 aprovecho para hacer una pregunta sobre esto. No es posible utilizar la funcion para enviar mensajes fuera de un flow?

Lo utilizaria, por ejemplo, para correrlo con un cronjob, para que 1 vez por dia envie un cierto mensaje a un cierto numero. Intente usar : await adapterProvider.sendText( "<numerodetelefono>@s.whatsapp.net", "ready!" );

El error que recibo:

image

Puedo pasarte mas detalles si consideras que deberia funcionar, para que veamos cual es el error. Si ya sabes que no puede funcionar, me gustaria saber por que. Me hace sentido que usando el provider se pudiera mandar mensajes fuera de lo que es un flow.

Muchas gracias!

ozzyoss77 commented 3 months ago

@rodrimarchese por el momento solo es posible en la versión dev del bot con Typescript, con el nuevo framework llamado builderbot, sobre la versión donde aparentemente trabajas necesitas extender el coreclass del bot para poder hacer uso de las funciones fuera de un flow