Mettre à jour et supprimer les messages envoyés à partir du bot

Importante

Les exemples de code de cette section sont basés sur la version 4.6 et les versions ultérieures du Kit de développement logiciel (SDK) Bot Framework. Si vous recherchez de la documentation pour les versions antérieures, consultez la section bots - Kit de développement logiciel (SDK) v3 dans le dossier Kits de développement logiciel (SDK) hérités de la documentation.

Votre bot peut mettre à jour dynamiquement les messages après les avoir envoyés au lieu de les avoir en tant qu’instantanés statiques de données. Les messages peuvent également être supprimés à l’aide de la méthode DeleteActivity du Bot Framework.

Notes

Un bot ne peut pas mettre à jour ou supprimer les messages envoyés par l’utilisateur dans Microsoft Teams.

Mettre à jour les messages

Vous pouvez utiliser des mises à jour de messages dynamiques pour des scénarios tels que les mises à jour de sondage, la modification des actions disponibles après une pression sur un bouton ou tout autre changement d’état asynchrone.

Il n’est pas nécessaire que le nouveau message corresponde au type d’origine. Par exemple, si le message d’origine contient une pièce jointe, le nouveau message peut être un message texte simple.

Pour mettre à jour un message existant, transmettez un nouvel objet Activity avec l’ID d’activité existant à la méthode UpdateActivityAsync de la 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);

Maintenant que vous avez mis à jour les messages, mettez à jour la carte existante lors de la sélection du bouton pour les activités entrantes.

Mettre à jour les cartes

Pour mettre à jour la carte existante lors de la sélection du bouton, vous pouvez utiliser ReplyToId de l’activité entrante.

Pour mettre à jour la carte existante sur une sélection de bouton, transmettez un nouvel objet Activity avec la carte mise à jour et ReplyToId comme ID d’activité à la méthode UpdateActivityAsync de la 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);

Maintenant que vous avez mis à jour les cartes, vous pouvez supprimer des messages à l’aide de la Bot Framework.

Suppression de messages

Dans le Bot Framework, chaque message a son identificateur d’activité unique. Les messages peuvent être supprimés à l’aide de la méthode DeleteActivity du Bot Framework.

Pour supprimer un message, transmettez l’ID de cette activité à la méthode DeleteActivityAsync de la 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);
}

Exemple de code

L’exemple de code suivant illustre les concepts de base des conversations :

Exemple de nom Description .NET Node.js Python Manifeste
Informations de base des conversations Teams Cet exemple montre comment utiliser différents événements de conversation de bot disponibles dans Bot Framework v4 pour l’étendue personnelle et teams. View View View View

Étape suivante

Voir aussi