Compartir a través de


Bots y SDK

Puede crear un bot que funcione en Microsoft Teams con una de las siguientes herramientas o funcionalidades:

Bots con el Microsoft Bot Framework

El bot de Teams consta de lo siguiente:

  • Un servicio web accesible públicamente que la organización hospeda.
  • Un registro de Bot Framework para el servicio web.
  • El paquete de la aplicación Teams, que conecta el cliente de Teams al servicio web.

Sugerencia

Use el Portal para desarrolladores para registrar el servicio web con Bot Framework y especificar las configuraciones de la aplicación. Para obtener más información, consulte Administración de aplicaciones con el Portal para desarrolladores para Teams.

El Bot Framework es un SDK enriquecido que se usa para crear bots mediante C#, Java, Python y JavaScript. Si tiene un bot basado en el Bot Framework, puede modificarlo para que funcione en Teams. Microsoft le recomienda usar C# o Node.js para aprovechar nuestros SDK. En estos paquetes, se amplían las clases y métodos básicos del SDK de Bot Builder:

  • Use tipos de tarjeta especializados, como la tarjeta del conector para Grupos de Microsoft 365.
  • Establezca datos de canal específicos de Teams en las actividades.
  • Procesar solicitudes de extensión de mensaje.

Puede desarrollar aplicaciones Teams en cualquier tecnología de programación web y llamar directamente a las API REST de Bot Framework. Debe realizar el control de tokens en todos los casos.

Bots con Power Virtual Agents

Power Virtual Agents es un servicio de bot de chat basado en la plataforma Microsoft Power y Bot Framework. El proceso de desarrollo de Power Virtual Agent usa un enfoque guiado, sin código e interfaz gráfica que permite a los miembros del equipo crear y mantener fácilmente un agente virtual inteligente. Después de crear el bot de chat en el portal de Power Virtual Agents, puede integrarlo fácilmente con Teams. Para obtener más información sobre cómo empezar, consulte Documentación de Power Virtual Agents.

Nota:

No debe usar Microsoft Power Platform para crear aplicaciones que se van a publicar en microsoft Teams Store. Las aplicaciones de Microsoft Power Platform solo se pueden publicar en la tienda de aplicaciones de una organización.

Bots con webhooks y conectores

Importante

Los conectores de Microsoft 365 (anteriormente denominados conectores de Office 365) están a punto de desuso y la creación de nuevos conectores de Microsoft 365 pronto se bloqueará. Para obtener más información sobre la programación y cómo la aplicación Flujos de trabajo proporciona una experiencia más flexible y segura, consulte Retirada de conectores de Microsoft 365 en Microsoft Teams.

¿Cómo puede crear un webhook en Teams?

Si ya ha creado conectores de Office 365:

  • Creación de un conector de Power Automate: Power Automate mejora las aplicaciones de flujos de trabajo ampliamente utilizadas en Teams. Es el enfoque escalable y seguro para transmitir datos mediante programación dentro y fuera de Teams. Si adopta este método, puede crear plantillas de flujo de trabajo para publicar alertas desde el producto en canales de Teams. Este enfoque simplifica la adopción por parte del usuario del nuevo método. Para obtener más información, consulte Power Automate para desarrolladores empresariales, ISV y asociados.

  • Actualizar la aplicación de Teams: puede mejorar la aplicación actual de Teams. Por ejemplo, puede permitir que los usuarios configuren mensajes proactivos basados en eventos de desencadenador dentro del sistema. Para obtener más información, consulte cómo los bots pueden publicar en canales a través de mensajes proactivos.

Problemas conocidos

  • La aplicación Flujos de trabajo no puede publicar en canales privados como un bot de flujo. Sin embargo, puede publicar en nombre de un usuario.
  • Los flujos de trabajo solo admiten tarjetas adaptables. No admite el formato de tarjeta de mensaje anterior que usan los conectores de Office 365. Los flujos de trabajo no admiten el uso del formato de tarjeta de mensaje. Para obtener más información, vea cómo convertir el formato de tarjeta de mensaje del conector a tarjeta adaptable.
  • Los flujos de trabajo no ofrecen conectores de terceros, como DataDog y Jenkins.
  • Los flujos de trabajo solo se pueden crear en el entorno predeterminado.

Limitaciones

Los flujos de trabajo solo están vinculados a usuarios específicos (denominados propietarios del flujo de trabajo) y no a un equipo o canal de Teams. Los flujos de trabajo pueden convertirse en flujos huérfanos en ausencia de un propietario si no se asigna ningún copropietario. Para mantener la continuidad en el proceso empresarial automatizado por el flujo, los administradores pueden agregar uno o varios copropietarios y concederles control total sobre el flujo de trabajo. También pueden agregar autenticación para las conexiones, si las hubiera, y habilitar el flujo si se ha deshabilitado. Para obtener más información, consulte Administración de flujos huérfanos.

Los webhooks y los conectores conectan el bot a los servicios web. Con webhooks y conectores, puede crear un bot para la interacción básica, como la creación de un flujo de trabajo u otros comandos simples. Solo están disponibles en el equipo donde los crea y están diseñados para procesos sencillos específicos del flujo de trabajo de su empresa. Para obtener más información, consulte qué son los webhooks y los conectores.

Ventajas de los bots

Los bots en Microsoft Teams pueden formar parte de una conversación uno a uno, de un chat de grupo o de un canal de un equipo. Cada ámbito proporciona oportunidades y dificultades únicas para su bot de conversación.

En un canal En un chat de grupo En un chat individual
Alcance masivo Menos miembros Manera tradicional
Interacciones individuales concisas @mention a bot Bots de Q&A
@mention a bot Similar al canal Bots que cuentan chistes y toman notas

En un canal

Los canales contienen conversaciones en subprocesos entre varias personas, incluso hasta 2000. Esto proporciona un alcance potencialmente masivo al bot, pero las interacciones individuales deben ser concretas. Las interacciones tradicionales de varios turnos no funcionan. En su lugar, debe buscar usar tarjetas o diálogos interactivos (denominados módulos de tareas en TeamsJS v1.x) o mover la conversación a una conversación uno a uno para recopilar mucha información. El bot solo tiene acceso a los mensajes en los que es @mentioned. Puede recuperar mensajes adicionales de la conversación con Microsoft Graph y los permisos a nivel de organización.

Los bots funcionan mejor en un canal en los siguientes casos:

  • Notificaciones, especialmente si se proporciona una tarjeta interactiva para que los usuarios puedan obtener información adicional.
  • Escenarios de comentarios, como sondeos y encuestas.
  • El ciclo de solicitud o respuesta única resuelve las interacciones y los resultados son útiles para varios miembros de la conversación.
  • Bots sociales o divertidos, donde hay imágenes de gatos geniales, se elige aleatoriamente un ganador, etc.

En un chat de grupo

Los chats de grupo son conversaciones entre tres o más personas que no se desarrollan en hilos. Tienden a tener menos miembros que un canal y son más transitorios. De forma similar a un canal, el bot solo tiene acceso a los mensajes donde está @mentioned directamente.

Los bots que funcionan mejor en un canal también funcionan mejor en un chat de grupo.

En un chat individual

Esta es la manera tradicional en la que un bot de conversación interactúa con un usuario. Algunos ejemplos de bots conversacionales individuales son:

  • Bots de Q&A
  • bots que inician flujos de trabajo en otros sistemas.
  • bots que cuentan chistes.
  • bots que toman notas. Antes de crear bots de chat uno a uno, considere si una interfaz basada en conversación es la mejor manera de presentar la funcionalidad.

Desventajas de los bots

Un amplio diálogo entre el bot y el usuario es una manera lenta y compleja de completar una tarea. Un bot que admite comandos excesivos, especialmente una amplia gama de comandos, no es correcto o los usuarios no los ven de forma positiva.

Tener experiencias de varios turnos en el chat

Un cuadro de diálogo extenso requiere que el desarrollador mantenga el estado. Para salir de este estado, un usuario debe agotar el tiempo de espera o seleccionar Cancelar. Además, el proceso es tedioso. Por ejemplo, consulte el siguiente escenario de conversación:

USUARIO: Programe una reunión con Megan.

BOT: he encontrado 200 resultados, incluidos el nombre y el apellido.

USUARIO: Programe una reunión con Megan Bowen.

BOT: Ok, ¿a qué hora le gustaría reunirse con Megan Bowen?

USUARIO: 1:00 p.m.

BOT: ¿En qué día?

Compatibilidad con demasiados comandos

Dado que solo hay seis comandos visibles en el menú del bot actual, es poco probable que se use ningún otro con frecuencia. Bots que profundizan en un área específica en lugar de tratar de ser un asistente de trabajo amplio y funcionan mejor.

Mantener una amplia knowledge base

Una de las desventajas de los bots es que es difícil mantener una gran knowledge base de recuperación con respuestas no clasificadas. Los bots son más adecuados para interacciones breves y rápidas y no para examinar listas largas en busca de una respuesta.

Limitaciones y problemas conocidos

Si no puede crear un bot en el Portal para desarrolladores, asegúrese de lo siguiente:

  • El registro de aplicaciones está habilitado para los usuarios: cuando un registro de aplicación está deshabilitado en toda la organización, los usuarios (distintos de los usuarios con Microsoft Entra acceso de administrador) no pueden registrar nuevas aplicaciones. Para permitir que los usuarios registren aplicaciones, los administradores deben alternar Los usuarios pueden registrar aplicaciones en en el Centro de administración Microsoft Entra.

  • Conceda permisos a usuarios específicos para registrar nuevas aplicaciones:

    • En el caso de las licencias de Microsoft 365 en las que el límite de registro de aplicaciones es de 250 aplicaciones por usuario, asegúrese de que el administrador agrega Microsoft Entra ID a un usuario con los siguientes roles:

      Para obtener información sobre cómo asignar roles, consulte Asignación de roles Microsoft Entra a los usuarios.

    • Para la licencia de Microsoft 365 (plan P1, P2, E3 o E5), donde el límite de registro de aplicaciones es predeterminado para el límite de inquilinos (más de 300 000) por usuario, asegúrese de que el administrador agrega Microsoft Entra ID a un usuario y asigna un rol personalizado al usuario con los permisos siguientes:

      • microsoft.directory/applications/create
      • microsoft.directory/applications/createAsOwner

Fragmentos de código

El código siguiente proporciona un ejemplo de una actividad de bot para un ámbito de equipo de canal:


protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
    var mention = new Mention
    {
        Mentioned = turnContext.Activity.From,
        // EncodeName: Converts the name to a valid XML name.
        Text = $"<at>{XmlConvert.EncodeName(turnContext.Activity.From.Name)}</at>",
    };
    
    // MessageFactory.Text(): Specifies the type of text data in a message attachment.
    var replyActivity = MessageFactory.Text($"Hello {mention.Text}.");
    replyActivity.Entities = new List<Entity> { mention };

    // Sends a message activity to the sender of the incoming activity.
    await turnContext.SendActivityAsync(replyActivity, cancellationToken);
}

El código siguiente proporciona un ejemplo de actividad de bot para un chat individual:


// Handle message activity
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
    // Remove recipient mention text from Text property.
    // Use with caution because this function is altering the text on the Activity.
    turnContext.Activity.RemoveRecipientMention();
    var text = turnContext.Activity.Text.Trim().ToLower();

    // Sends a message activity to the sender of the incoming activity.
    await turnContext.SendActivityAsync(MessageFactory.Text($"Your message is {text}."), cancellationToken);
}

Ejemplo de código

Ejemplo de nombre Descripción .NETCore Node.js Python Manifiesto
Bot de conversación de Teams Esta aplicación de ejemplo muestra cómo usar diferentes eventos de conversación de bot disponibles en bot framework v4. View View View View
Ejemplos de bot Conjunto de ejemplos de Bot Framework v4. View View View

Paso siguiente

Consulte también