Al crear un chatbot de recordatorios, es imprescindible la funcionalidad de programación de mensajes. Imagine que el usuario envió un mensaje al chatbot con la siguiente sentencia.
Recordarme tomar el medicamento en 10 minutos
En este caso, su chatbot necesita entender el contexto de la conversación, extraer la información del comando y finalmente programar un mensaje para los próximos 10 minutos.
En este artículo, nos preocuparemos solo de la programación del mensaje.
Para ello, serán necesarias dos modificaciones en su MessageReceiver:
- Añada la interfaz ISchedulerExtension en el constructor de su MessageReceiver. Nota: Será inyectado automáticamente por el SDK
- Utilice el método ScheduleMessageAsync(Meesage m, DateTimeOffset d) para programar su mensaje
El código a continuación muestra el uso de la extensión de programación.
//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);
}
}
Para más información, acceda a la discusión sobre el tema en nuestra comunidad o los videos en nuestro canal. 😃