Как скрыть от чата сообщение пользователя, но отправить его сзади? - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь установить соединение между Пользователем и Агентом. Но мне нужно скрыть входящее сообщение при отправке его обратно в бот.

Я могу подключиться к той же беседе, «остановить» бота и использовать его для отправки сообщений Агента. Таким образом, справа находится текст Пользователя, а слева текст Агента (через бота).

У меня есть два веб-чата, один для агента и один для пользователя.

Я использую этот код в чате пользователя:

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 ничего не печатали с правой стороны.

...