我正在尝试建立用户和代理之间的连接。但是我需要在将输入消息从后面发送到机器人时隐藏它。
我能够连接到同一个对话并“停止”机器人并使用它来发送代理的消息。所以右边是用户的文本,左边是代理的文本(通过机器人)。
我有两个网络聊天,一个用于代理,一个用于用户。
我在用户的网络聊天中使用此代码:
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 类型的操作不会在右侧打印任何内容。