我正在尝试建立用户与代理之间的连接。但是我需要隐藏输入消息,同时将消息从后面发送到机器人。
我能够连接到相同的对话并“停止”机器人并使用它发送代理的消息。因此,在右边是用户的文本,在左边是代理的文本(通过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类型的操作不会在右侧显示任何内容。