Partilhar via


Atualizar e excluir mensagens enviadas do bot

Importante

Os exemplos de código nesta secção baseiam-se na versão 4.6 e versões posteriores do SDK do Bot Framework. Se estiver à procura de documentação para versões anteriores, veja a secção bots – SDK v3 na pasta SDKs Legados 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.

Observação

Um bot não pode atualizar ou eliminar mensagens enviadas pelo utilizador no Microsoft Teams.

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.

// Send initial message
var response = await turnContext.SendActivityAsync(MessageFactory.Attachment(card.ToAttachment()), cancellationToken);
var activityId = response.Id; // Fetch activity id.

// MessageFactory.Text(): Specifies the type of text data in a message attachment.
var newActivity = MessageFactory.Text("The new text for the activity");
newActivity.Id = activityId;

// UpdateActivityAsync(): A method that can participate in update activity events for the current turn.
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.

// Returns a message activity that contains an attachment.
var activity = MessageFactory.Attachment(card.ToAttachment());
activity.Id = turnContext.Activity.ReplyToId;

// A method that can participate in update activity events for the current turn.
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.

foreach (var activityId in _list)
{
    // When overridden in a derived class, deletes an existing activity in the conversation.
    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 Manifesto
Noções básicas de conversa do Teams Este exemplo mostra como utilizar diferentes eventos de conversação de bot disponíveis no bot framework v4 para o âmbito pessoal e de equipas. View View View View

Próxima etapa

Confira também