es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Twilio FlexWebchat ‘sendMessage’ está activando el mensaje dos veces.

Estoy utilizando Twilio Flex WebChat para enviar y recibir mensajes. Tengo un requisito para modificar un mensaje antes de enviarlo. Por lo tanto, agregué un listener beforeSendMessage en componentDidMount() donde estoy recopilando el cuerpo del mensaje, transformándolo y enviando el mensaje. Aquí el problema es que está enviando tanto el mensaje original como el mensaje transformado. Mi objetivo es enviar solo el mensaje transformado. ¿Puede ayudarme posiblemente? Gracias.

js
componentDidMount() {
FlexWebChat.Actions.addListener(
'beforeSendMessage',
async (payload) => {
const { body, channelSid } = payload;
const modifiedBody = transform(body) // Transformando el mensaje aquí
await FlexWebChat.Actions.invokeAction('SendMessage', {
body: modifiedBody, // Enviando el mensaje transformado
channelSid,
})
}
)
}

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para enviar solo el mensaje transformado y no el mensaje original, puedes eliminar el mensaje original de la carga utilizando la palabra clave delete de JavaScript. Así es como puedes modificar el listener beforeSendMessage:

        componentDidMount() {
            FlexWebChat.Actions.addListener(
              'beforeSendMessage',
              async (payload) => {
                const { body, channelSid } = payload;
                const modifiedBody = transform(body);
                delete payload.body; // eliminar el mensaje original de la carga
                await FlexWebChat.Actions.invokeAction('SendMessage', {
                  body: modifiedBody,
                  channelSid,
                });
              }
            );
         }
    

    Después de eliminar la propiedad body, el listener solo enviará el mensaje transformado.

Comments are closed.