Каким образом связать чат и бизнес процесс, а также обрабатывать сообщения из него?
Начал разбираться в стандартных чатах и возникли вопросы
1. Как я могу отправить сообщение автоматически к примеру с помощью бизнес процесса, какое действие мне надо отслеживать и в какую таблицу инсертить
2. Как я могу обработать сообщение и давать на них автоматические ответы7
К примеру человек ввел /status ему выдается сообщение о статусе груза к примеру. Или он ввел номер записи и ему выдало данные по ней из системы?
Нравится
Добрый день!
По п.1. В данный момент данный функционал отсутствует в продукте, есть пожелание на доработку.
По п.2, данный вопрос лежит в плоскости интеграций по API и настройки чат-ботов, к сожалению, не располагаю такой информацией.
Здравствуйте! Я пробовал делать отправку из задания-сценария. Перехатить сообщения пока не получилось, но если есть у кого-то есть пример, то буду признателен.
Пример кода на отправку, что бы сообщение отправилось, необходим чат с контактом, собственно переменная chatId:
using Terrasoft.Configuration.Omnichannel.Messaging
using System.Linq
using OmnichannelMessaging
using OmnichannelProviders.Domain.Entities
using MessageDirection = OmnichannelProviders.Domain.Entities.MessageDirection
//Сам код:
UserConnection userConnection = Get<UserConnection>("UserConnection");
Guid chatId = Get<Guid>("ChatId");
string textMessage = Get<string>("TextMessage");
DateTime foo = DateTime.Now;
long unixTime = ((DateTimeOffset)foo).ToUnixTimeSeconds();
var messageManager = new MessageManager(userConnection);
var messages = messageManager.GetMessagesByChatId(chatId);
var unifiedMessage = messages.FirstOrDefault();
if (unifiedMessage != null) {
UnifiedMessage message = new UnifiedMessage {
Recipient = unifiedMessage.MessageDirection == MessageDirection.Incoming ? unifiedMessage.Sender : unifiedMessage.Recipient,
Sender = unifiedMessage.MessageDirection == MessageDirection.Incoming ? unifiedMessage.Recipient : unifiedMessage.Sender,
MessageDirection = MessageDirection.Outcoming,
ChatId = chatId.ToString(),
ChannelId = unifiedMessage.ChannelId,
Source = unifiedMessage.Source,
MessageType = OmnichannelProviders.Domain.Entities.MessageType.Text,
Message = textMessage,
Timestamp = unixTime
};
messageManager.Send(message);
}