Compartir vía


Envío y recepción de mensajes de texto

SE APLICA A: SDK v4

La forma principal comunicación del bot con los usuarios y de recepción de comunicación es mediante actividades de mensaje. Algunos mensajes pueden contener solo texto sin formato, mientras que otros pueden tener un contenido más rico, como tarjetas o archivos adjuntos. El controlador de turnos del bot recibe mensajes del usuario y puede enviar respuestas al usuario desde ahí. El objeto del contexto de turno proporciona métodos para enviar mensajes al usuario. Este artículo describe cómo enviar mensajes de texto simples.

Markdown es compatible con la mayoría de los campos de texto, pero la compatibilidad puede variar según el canal.

Para un bot en ejecución que envía y recibe mensajes, siga los tutoriales en la parte superior de la tabla de contenido o consulte el artículo sobre cómo funcionan los bots, que también incluye vínculos a ejemplos disponibles para que pueda ejecutarlos usted mismo.

Nota:

Para crear agentes con su elección de servicios de inteligencia artificial, orquestación y conocimientos, considere la posibilidad de usar el SDK de agentes de Microsoft 365. El SDK de agentes admite C#, JavaScript o Python. Puede obtener más información sobre el SDK de agentes en aka.ms/agents. Si busca una plataforma de agente basada en SaaS, considere Microsoft Copilot Studio. Si tiene un bot existente creado con Bot Framework SDK, puede actualizar el bot al SDK de agentes. Puede revisar los cambios principales y las actualizaciones en la guía de migración del Bot Framework SDK al SDK de Agentes. Las incidencias de soporte técnico del SDK de Bot Framework ya no se atenderán a partir del 31 de diciembre de 2025.

Enviar un mensaje de texto

Para enviar un mensaje de texto, especifique la string que desee enviar como actividad.

En los controladores de actividades del bot, use convertir el método SendActivityAsync del objeto de contexto para enviar una solicitud de mensaje única. También puede usar el método SendActivitiesAsync del objeto para enviar varias respuestas a la vez.

await turnContext.SendActivityAsync($"Welcome!");

Recibir un mensaje de texto

Para administrar un mensaje de texto, utilice la propiedad text del objeto activity.

En los controladores de actividades del bot, use el siguiente código para recibir un mensaje.

var responseMessage = turnContext.Activity.Text;

Envío de un indicador de escritura

Los usuarios esperan una respuesta a tiempo a sus mensajes. Si el bot realiza alguna tarea de larga ejecución como llamar a un servidor o ejecutar una consulta sin proporcionar al usuario ninguna indicación de que el bot le ha escuchado, el usuario podría impacientarse o simplemente suponer que el bot no funciona.

Los bots de los canales Web Chat y Direct Line admiten el envío de una indicación de escritura para mostrar al usuario que el mensaje se recibió y que se está procesando. Sin embargo, el bot tiene que dejar que el turno termine en 15 segundos o el servicio Conector agotará el tiempo de espera. Para procesos más largos, lea más sobre el envío de mensajes proactivos.

En el ejemplo siguiente se muestra cómo enviar una indicación de escritura.

protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
    if (string.Equals(turnContext.Activity.Text, "wait", System.StringComparison.InvariantCultureIgnoreCase))
    {
        await turnContext.SendActivitiesAsync(
            new Activity[] {
                new Activity { Type = ActivityTypes.Typing },
                new Activity { Type = "delay", Value= 3000 },
                MessageFactory.Text("Finished typing", "Finished typing"),
            },
            cancellationToken);
    }
    else
    {
        var replyText = $"Echo: {turnContext.Activity.Text}. Say 'wait' to watch me type.";
        await turnContext.SendActivityAsync(MessageFactory.Text(replyText, replyText), cancellationToken);
    }
}

Recursos adicionales

Pasos siguientes