Twilio FlexWebchat 'sendMessage' 触发消息两次

Twilio FlexWebchat 'sendMessage' is triggering the message twice

我正在使用 Twilio Flex WebChat 发送和接收消息。我需要在发送之前修改一条消息。因此,我在 componentDidMount() 中添加了一个侦听器 beforeSendMessage,我在其中收集消息正文、转换它并发送消息。这里的问题是它同时发送原始消息和转换后的消息。我的目标是单独发送转换后的消息。你能帮帮我吗?谢谢。

    componentDidMount() {
        FlexWebChat.Actions.addListener(
          'beforeSendMessage',
          async (payload) => {
            const { body, channelSid } = payload;
            const modifiedBody = transform(body)  //Transforming the message here
            await FlexWebChat.Actions.invokeAction('SendMessage', {
              body: modifiedBody,  // Sending the transformed message
              channelSid,
            })
          }
        )
     }

发生这种情况的原因是因为您执行了两次 SendMessage。

你可以用监听器做的是修改有效负载并让执行继续,它会继续执行。如果你想阻止消息发送,你可以调用abortFunction()

  componentDidMount() {
    FlexWebChat.Actions.addListener(
      'beforeSendMessage',
      async (payload, abortFunction) => {
        const { body, channelSid } = payload;
        payload.body = transform(body);  //Transforming the message here
      }
    )
 }