Como agendar uma mensagem com a extensão scheduler Take Blip 9 de dezembro de 2020 15:42 Ao criar um chatbot de lembretes, é imprescindível a funcionalidade de agendamento de mensagem. Imagine que o usuário enviou uma mensagem para o chatbot com a seguinte sentença. Lembrar-me de tomar remédio em 10 minutos Neste caso, seu chatbot precisa enteder o contexto da conversa, extrair as infromações de comando e finalmente agendar uma mensagem para os próximos 10 minutos. Neste artigo, Vamos nos preocupar apenas com o agendamento da mensagem. Para isso, serão necessários duas modificações em seu MessageReceiver: Adicione a interface ISchedulerExtension no construtor de seu MessageReceiver. Obs.: Ele será injetado automaticamente pelo SDK Utilize o método ScheduleMessageAsync(Meesage m, DateTimeOffset d) para agendar sua mensagem O código abaixo apresenta a utilização da extensão de agendamento. //Note that I just changed the MessageReceiver class name from PlainTextMessageReceiver to SchedulerExtensionMessageReceiver public class SchedulerExtensionMessageReceiver : IMessageReceiver { private readonly ISchedulerExtension _schedulerExtension; private readonly IMessagingHubSender _sender; public SchedulerExtensionMessageReceiver(IMessagingHubSender sender, ISchedulerExtension schedulerExtension) { _schedulerExtension = schedulerExtension; _sender = sender; } //Schedule a message to next 10 minutes public async Task ReceiveAsync(Message receivedMessage, CancellationToken cancellationToken) { var schedullingDate = DateTimeOffset.Now.AddMinutes(10); var messageContent = "tomar remédio"; var message = new Message { Id = Guid.NewGuid().ToString(), To = receivedMessage.From, Content = new PlainText { Text = messageContent } }; await _schedulerExtension.ScheduleMessageAsync(message, schedullingDate); } } Artigos relacionados Como funciona a distribuição de tickets
Ao criar um chatbot de lembretes, é imprescindível a funcionalidade de agendamento de mensagem. Imagine que o usuário enviou uma mensagem para o chatbot com a seguinte sentença. Lembrar-me de tomar remédio em 10 minutos Neste caso, seu chatbot precisa enteder o contexto da conversa, extrair as infromações de comando e finalmente agendar uma mensagem para os próximos 10 minutos. Neste artigo, Vamos nos preocupar apenas com o agendamento da mensagem. Para isso, serão necessários duas modificações em seu MessageReceiver: Adicione a interface ISchedulerExtension no construtor de seu MessageReceiver. Obs.: Ele será injetado automaticamente pelo SDK Utilize o método ScheduleMessageAsync(Meesage m, DateTimeOffset d) para agendar sua mensagem O código abaixo apresenta a utilização da extensão de agendamento. //Note that I just changed the MessageReceiver class name from PlainTextMessageReceiver to SchedulerExtensionMessageReceiver public class SchedulerExtensionMessageReceiver : IMessageReceiver { private readonly ISchedulerExtension _schedulerExtension; private readonly IMessagingHubSender _sender; public SchedulerExtensionMessageReceiver(IMessagingHubSender sender, ISchedulerExtension schedulerExtension) { _schedulerExtension = schedulerExtension; _sender = sender; } //Schedule a message to next 10 minutes public async Task ReceiveAsync(Message receivedMessage, CancellationToken cancellationToken) { var schedullingDate = DateTimeOffset.Now.AddMinutes(10); var messageContent = "tomar remédio"; var message = new Message { Id = Guid.NewGuid().ToString(), To = receivedMessage.From, Content = new PlainText { Text = messageContent } }; await _schedulerExtension.ScheduleMessageAsync(message, schedullingDate); } }