Actualizar y eliminar mensajes enviados desde el bot

Importante

Los ejemplos de código de esta sección se basan en la versión 4.6 y versiones posteriores del SDK de Bot Framework. Si está buscando documentación para versiones anteriores, consulte la sección bots - v3 SDK en la carpeta Resources de la documentación.

El bot puede actualizar dinámicamente los mensajes después de enviarlos en lugar de tenerlos como instantáneas estáticas de datos. Los mensajes también se pueden eliminar mediante el método de Bot DeleteActivity Framework.

Actualizar mensajes

Puede usar actualizaciones dinámicas de mensajes para escenarios, como las actualizaciones de sondeo, la modificación de las acciones disponibles después de presionar un botón o cualquier otro cambio de estado asincrónico.

No es necesario que el nuevo mensaje coincida con el tipo original. Por ejemplo, si el mensaje original contiene datos adjuntos, el nuevo mensaje puede ser un mensaje de texto simple.

Para actualizar un mensaje existente, pase un nuevo objeto con el identificador de actividad Activity existente al método de la UpdateActivityAsync TurnContext clase. Para obtener más información, vea TurnContextClass.

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

Ahora que ha actualizado los mensajes, actualice la tarjeta existente en la selección de botón para las actividades entrantes.

Actualizar tarjetas

Para actualizar la tarjeta existente en la selección de botón, puede usar ReplyToId la actividad entrante.

Para actualizar la tarjeta existente en una selección de botón, pase un nuevo objeto con la tarjeta actualizada y como identificador de actividad Activity al método de la ReplyToId UpdateActivityAsync TurnContext clase. Vea TurnContextClass.

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

Ahora que ha actualizado las tarjetas, puede eliminar mensajes con Bot Framework.

Eliminar mensajes

En Bot Framework, cada mensaje tiene su identificador de actividad único. Los mensajes se pueden eliminar mediante el método de Bot DeleteActivity Framework.

Para eliminar un mensaje, pase el identificador de esa actividad al DeleteActivityAsync método de la TurnContext clase. Para obtener más información, consulta TurnContext.DeleteActivityAsync (método).

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

Ejemplo de código

En el ejemplo de código siguiente se muestran los conceptos básicos de las conversaciones:

Ejemplo de nombre Descripción .NET Node.js Python
Teams Conceptos básicos de conversación Muestra los conceptos básicos de las conversaciones en Teams actualización y eliminación de mensajes. View View View

Paso siguiente