Я пытаюсь установить соединение между Пользователем и Агентом. Но мне нужно скрыть входящее сообщение при отправке его обратно в бот.
Я могу подключиться к той же беседе, «остановить» бота и использовать его для отправки сообщений Агента. Таким образом, справа находится текст Пользователя, а слева текст Агента (через бота).
У меня есть два веб-чата, один для агента и один для пользователя.
Я использую этот код в чате пользователя:
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)
}
);
Но проблема в чате агента. Я не знаю, как скрыть входящее сообщение, поэтому прямо сейчас в веб-чате агента я вижу дублированное сообщение агента.
У пользователя разрешен веб-чат.
Но в Агенте я бы хотел быть таким же:
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_BACK в типе SEND_MESSAGE и оставлении action.payload.text пустым, чтобы действия типа SEND_MESSAGE и POSTBACK ничего не печатали с правой стороны.