5

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

    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,
            })
          }
        )
     }
4

1 回答 1

1

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

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

  componentDidMount() {
    FlexWebChat.Actions.addListener(
      'beforeSendMessage',
      async (payload, abortFunction) => {
        const { body, channelSid } = payload;
        payload.body = transform(body);  //Transforming the message here
      }
    )
 }
于 2022-01-19T12:05:16.367 回答