Atualizar e excluir mensagens enviadas do bot

Importante

Os exemplos de código nesta seção são baseados na versão 4.6 e versões posteriores do SDK da Estrutura de Bot. Se você estiver procurando documentação para versões anteriores, consulte a seção bots - V3 SDK na pasta Recursos da documentação.

Seu bot pode atualizar mensagens dinamicamente depois de enviá-las em vez de enviá-las como instantâneos estáticos de dados. As mensagens também podem ser excluídas usando o método DeleteActivity do Bot Framework.

Atualizar mensagens

Você pode usar atualizações de mensagens dinâmicas para cenários, como atualizações de votação, modificação de ações disponíveis após um pressionamento de botão ou qualquer outra alteração de estado assíncrona.

Não é necessário que a nova mensagem corresponda ao tipo original. Por exemplo, se a mensagem original contiver um anexo, a nova mensagem poderá ser uma mensagem de texto simples.

Para atualizar uma mensagem existente, passe um novo objeto Activity com a ID de atividade existente para o método UpdateActivityAsync da classe TurnContext. Para obter mais informações, consulte TurnContextClass.

var newActivity = MessageFactory.Text("The new text for the activity");
newActivity.Id = activityId;
await turnContext.UpdateActivityAsync(newActivity, cancellationToken);

Agora que você atualizou as mensagens, atualize o cartão existente na seleção de botão para atividades de entrada.

Atualizar cartões

Para atualizar o cartão existente na seleção de botão, você pode usar ReplyToId atividade de entrada.

Para atualizar o cartão existente em uma seleção de botão, passe um novo objeto Activity com cartão atualizado e ReplyToId como ID de atividade para o método UpdateActivityAsync da classe TurnContext. Consulte TurnContextClass.

var activity = MessageFactory.Attachment(card.ToAttachment());
activity.Id = turnContext.Activity.ReplyToId;
await turnContext.UpdateActivityAsync(activity, cancellationToken);

Agora que você atualizou os cartões, pode excluir mensagens usando o Bot Framework.

Excluir mensagens

No Bot Framework, cada mensagem tem seu identificador de atividade exclusivo. As mensagens podem ser excluídas usando o método DeleteActivity do Bot Framework.

Para excluir uma mensagem, passe a ID da atividade para o DeleteActivityAsync da classe TurnContext. Para obter mais informações, consulte Método TurnContext.DeleteActivityAsync.

foreach (var activityId in _list)
{
    await turnContext.DeleteActivityAsync(activityId, cancellationToken);
}

Exemplo de código

O exemplo de código a seguir demonstra noções básicas de conversas:

Nome de exemplo Descrição .NET Node.js Python
Noções básicas de conversa do Teams Demonstra noções básicas de conversas no Teams, incluindo atualização e exclusão de mensagens. View View View

Próxima etapa