[SDK C#] Criando uma lista de distribuição de conteúdo
Para alguns chatbots, a distribuição de conteúdo é a principal funcionalidade. O chatbot de uma empresa varejista, por exemplo, precisa enviar mensalmente cupons de promoções para um determinado perfil de clientes. Para isso, é necessário separar os clientes que devem receber os cupons daqueles que não devem e, finalmente, enviar as mensagens para o grupo correto.
Para resolver este problema basta utilizar a extensão de listas.
- Crie o projeto template do SDK C# do BLiP (veja como na documentação do BLiP).
- Adicione a interface IBroadcastExtension no construtor de seu MessageReceiver. Obs.: Ele será injetado automaticamente pelo SDK.
- Crie uma lista de distribuição utilizando o método CreateDistributionListAsync(string listName).
- Adicione um novo usuário à sua lista com o método AddRecipientAsync(string listName, Identity recipientIdentity).
- Finalmente, envie uma mensagem para todos os usuários de sua lista com o método SendMessageAsync(string listName, Document d).
public class BroadcastMessageReceiver : IMessageReceiver
{
private readonly IBroadcastExtension _broadcastExtension;
private readonly IMessagingHubSender _sender;
public BroadcastMessageReceiver(IMessagingHubSender sender, IBroadcastExtension broadcastExtension)
{
_broadcastExtension = broadcastExtension;
_sender = sender;
}
public async Task ReceiveAsync(Message message, CancellationToken cancellationToken)
{
var listName = "couponUsers";
//Add a new distribution list with name couponUsers
await _broadcastExtension.CreateDistributionListAsync(listName);
//Add some users to couponUsers list
await _broadcastExtension.AddRecipientAsync(listName, message.From.ToIdentity());
//Send a message to couponUsers list users
await _broadcastExtension.SendMessageAsync(listName, new PlainText { Text = "Olá você ganhou um novo cupom de descontos" });
}
}