如何从网络聊天中隐藏用户消息,但从后面发送呢?

时间:2019-06-18 08:51:44

标签: botframework chatbot direct-line-botframework web-chat

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

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

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

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

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)
    }
  );

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

在用户网络聊天中解决。

但是在Agent中,我希望保持不变:


                                             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类型的操作不会在右侧显示任何内容。

0 个答案:

没有答案