1

我正在尝试建立用户和代理之间的连接。但是我需要在将输入消息从后面发送到机器人时隐藏它。

我能够连接到同一个对话并“停止”机器人并使用它来发送代理的消息。所以右边是用户的文本,左边是代理的文本(通过机器人)。

我有两个网络聊天,一个用于代理,一个用于用户。

我在用户的网络聊天中使用此代码:

const store =  window.WebChat.createStore(
   {},
   ({ dispatch}) => next => action => {
      if (action.type === 'DIRECT_LINE/INCOMING_ACTIVITY') {
        const { activity } = action.payload;
        if (activity.from.id === "Agent") {
          activity.text = "";
          action.payload = activity;
        }
        return next(action)
      }
      return next(action)
    }
  );

但问题出在代理的网络聊天中。我不知道如何隐藏输入消息,所以现在在代理的网络聊天中,我看到代理消息重复。

在用户 Webchat 中已解决。

但在代理中,我希望是一样的:


                                             User: Hi
Bot(Agent): How can i help you?

现在在我的代理网络聊天中是这样的:


                                     User: Hi
                                     Agent: How can I help you?
Bot(Agent): How can i help you?

解决方案:

if (action.type === 'WEB_CHAT/SEND_MESSAGE') {
  dispatch({
    type: 'WEB_CHAT/SEND_MESSAGE_BACK',
    payload: {
      text: action.payload.text
    }
  });
  action.payload.text = "";
}

这是关于在 SEND_MESSAGE 类型中发送带有 SEND_MESSAGE_BACK 的消息并将 action.payload.text 设置为空,因此 SEND_MESSAGE 和 POSTBACK 类型的操作不会在右侧打印任何内容。

4

0 回答 0