Cómo funcionan los bots de Microsoft TeamsHow Microsoft Teams bots work

se aplica a: SDK V4APPLIES TO: SDK v4

Esta es una introducción que se basa en lo que ha aprendido en el artículo Cómo funcionan los bots y conversaciones controladas por eventos. debe estar familiarizado con estos artículos antes de leerlo.This is an introduction that builds on what you learned in the article How bots work and Event-driven conversations; you should be familiar with these articles before reading this.

Las principales diferencias en los bots desarrollados para Microsoft Teams están en cómo se controlan las actividades.The primary differences in bots developed for Microsoft Teams is in how activities are handled. El controlador de actividad de Teams deriva del controlador de actividad y procesa los tipos de actividad específicos de Teams antes de procesar tipos de actividad más generales.The Teams activity handler derives from the activity handler and processes Teams-specific activity types before processing more general activity types.

Controlador de actividad de TeamsTeams activity handler

Para crear un bot para Teams, derive el bot de la clase de controlador de actividad teams.To create a bot for Teams, derive your bot from the Teams activity handler class. Cuando este tipo de bot recibe una actividad, enruta la actividad a través de varios controladores de actividad.When such a bot receives an activity, it routes the activity through various activity handlers. El controlador base inicial es el controlador de turnos y enruta la actividad a un controlador en función del tipo de la actividad.The initial, base handler is the turn handler, and it routes the activity to a handler based on the activity's type. El controlador de turnos llama al controlador que está diseñado para controlar el tipo específico de actividad que se recibió.The turn handler calls the handler that is designed to handle the specific type of activity that was received. La clase de controlador de actividad teams se deriva de la clase de controlador de actividad.The Teams activity handler class is derived from the activity handler class. Además de los tipos de actividad que el controlador de actividad puede procesar, la clase de controlador de actividad teams incluye controladores adicionales para las actividades específicas de Teams.In addition to the activity types that the activity handler can process, the Teams activity handler class includes additional handlers for Teams-specific activities.

Un bot que deriva del controlador de actividad teams es similar a un bot que deriva directamente de la clase de controlador de actividad.A bot that derives from the Teams activity handler is similar to a bot that derives directly from the activity handler class. Sin embargo, Teams incluye información adicional en conversationUpdate las actividades y envía actividades específicas de invoke Teams.However, Teams includes additional information in conversationUpdate activities and sends Teams-specific invoke activities.

Cuando el bot del controlador de actividad de Teams recibe una actividad de mensaje, su controlador de turnos enruta la actividad de mensajes entrantes a su controlador, de forma similar a como lo haría un bot basado – en el controlador de OnMessageActivityAsync – actividad.When your Teams activity handler–bot receives a message activity, its turn handler routes the incoming message activity to its OnMessageActivityAsync handler, similar to how an activity handler–based bot would. Sin embargo, cuando el bot de Teams recibe una actividad de actualización de conversación, la versión de Teams del OnConversationUpdateActivityAsync controlador procesa la actividad.However, when your Teams bot receives a conversation update activity, the Teams version of the OnConversationUpdateActivityAsync handler processes the activity.

No hay ninguna implementación base para la mayoría de los controladores de actividad específicos de Teams.There is no base implementation for most of the Teams-specific activity handlers. Tendrá que invalidar estos controladores y proporcionar la lógica adecuada para el bot.You will need to override these handler and provide appropriate logic for your bot.

Todos los controladores de actividad descritos en la sección de control de actividades del artículo Conversaciones controladas por eventos mediante un controlador de actividad seguirán funcionando como lo hacen con un bot que no es de Teams, con la excepción de controlar las actividades agregadas y quitadas de los miembros, que serán diferentes en el contexto de un equipo, donde el nuevo miembro se agrega al equipo en lugar de un subproceso de mensaje.All of the activity handlers described in the activity handling section of the Event-driven conversations using an activity handler article will continue to work as they do with a non-Teams bot, with the exception of handling the members added and removed activities, these will be different in the context of a team, where the new member is added to the team as opposed to a message thread. Consulte Actividades de actualización de conversaciones de Teams para obtener más detalles.See Teams conversation update activities for more details.

Para implementar la lógica para estos controladores de actividad específicos de Teams, invalidará los métodos en el bot.To implement your logic for these Teams-specific activity handlers, you will override methods in your bot.

Lógica del bot de TeamsTeams-bot logic

La lógica del bot procesa las actividades entrantes de uno o varios canales de los bots y genera actividades salientes como respuesta.The bot logic processes incoming activities from one or more of your bots channels and generates outgoing activities in response. Esto sigue siendo verdad en un bot derivado de la clase del controlador de actividades de Teams, que primero comprueba las actividades de Teams y, a continuación, pasa todas las demás actividades al controlador de actividades de Bot Framework.This is still true of bot derived from the Teams activity handler class, which first checks for Teams activities, then passes all other activities to the Bot Framework's activity handler.

Actividades de actualización de instalación de TeamsTeams installation update activities

Agregue un controlador para el evento de actualización de instalación para permitir que el bot:Add a handler for the installation update event to let your bot:

  • Envíe un mensaje introductorio cuando esté instalado en un subproceso de conversación.Send an introductory message when it is installed on a conversation thread.
  • Limpiar los datos de usuario y subproceso se desinstala de un subproceso.Clean up user and thread data whit it is uninstalled from a thread.

Consulte Evento de actualización de instalación en los documentos de Teams para obtener más información.See Installation update event in the Teams docs for more information.

Actividades de actualización de conversación de TeamsTeams conversation update activities

En la tabla siguiente se enumeran los eventos de Teams que generan una actividad de actualización de conversación en un bot.The following table lists the Teams events that generate a conversation update activity in a bot. En el artículo Eventos de actualización de conversación de Microsoft Teams se describe cómo usar cada uno de estos eventos.The Microsoft Teams Conversation update events article describes how to use each of these events.

A continuación se muestra una lista de todos los controladores de actividad de Teams a los que se llama desde OnConversationUpdateActivityAsync el método del controlador de actividad teams.Below is a list of all of the Teams activity handlers called from the OnConversationUpdateActivityAsync method of the Teams activity handler.

EventTypeEventType ControladorHandler CondiciónCondition Documentación de TeamsTeams documentation
channelCreatedchannelCreated OnTeamsChannelCreatedAsync Se envía cada vez que se crea un nuevo canal en un equipo en el que se instala el bot.Sent whenever a new channel is created in a team your bot is installed in. Canal creado.Channel created.
channelDeletedchannelDeleted OnTeamsChannelDeletedAsync Se envía cada vez que se elimina un canal en un equipo en el que está instalado el bot.Sent whenever a channel is deleted in a team your bot is installed in. Canal eliminado.Channel deleted.
channelRenamedchannelRenamed OnTeamsChannelRenamedAsync Se envía cada vez que se cambia el nombre de un canal en un equipo en el que se instala el bot.Sent whenever a channel is renamed in a team your bot is installed in. Se ha cambiado el nombre del canal.Channel renamed.
channelRestoredchannelRestored OnTeamsChannelRestoredAsync Se envía cada vez que se restaura un canal que se eliminó previamente en un equipo en el que el bot ya está instalado.Sent whenever a channel that was previously deleted is restored in a team that your bot is already installed in. Canal restaurado.Channel restored.
membersAddedmembersAdded OnTeamsMembersAddedAsync De forma predeterminada, llama al ActivityHandler.OnMembersAddedAsync método .By default, calls the ActivityHandler.OnMembersAddedAsync method. Se envía la primera vez que se agrega el bot a una conversación y cada vez que se agrega un nuevo usuario a un chat de equipo o grupo en el que está instalado el bot.Sent the first time your bot is added to a conversation and every time a new user is added to a team or group chat that your bot is installed in. Los miembros del equipo agregaron.Team members added.
membersRemovedmembersRemoved OnTeamsMembersRemovedAsync De forma predeterminada, llama al ActivityHandler.OnMembersRemovedAsync método .By default, calls the ActivityHandler.OnMembersRemovedAsync method. Se envía si el bot se quita de un equipo y cada vez que se quita un usuario de un equipo del que es miembro el bot.Sent if your bot is removed from a team and every time any user is removed from a team that your bot is a member of. Los miembros del equipo quitaron.Team members removed.
teamArchivedteamArchived OnTeamsTeamArchivedAsync Se envía cuando se archiva el equipo en el que está instalado el bot.Sent when the team your bot is installed in is archived. El equipo archivó.Team archived.
teamDeletedteamDeleted OnTeamsTeamDeletedAsync Se envía cuando se ha eliminado el equipo en el que se encuentra el bot.Sent when the team your bot is in has been deleted. El equipo eliminó.Team deleted.
teamRenamedteamRenamed OnTeamsTeamRenamedAsync Se envía cuando se ha cambiado el nombre del equipo en el que se encuentra el bot.Sent when the team your bot is in has been renamed. El nombre del equipo ha cambiado.Team renamed.
teamRestoredteamRestored OnTeamsTeamRestoredAsync Se envía cuando se restaura un equipo eliminado previamente en el que se encuentra el bot.Sent when a previously deleted team your bot is in is restored. El equipo restauró.Team restored.
teamUnarchivedteamUnarchived OnTeamsTeamUnarchivedAsync Se envía cuando el equipo en el que está instalado el bot no está jerarquíado.Sent when the team your bot is installed in is unarchived. Equipo sin jerarquía.Team unarchived.

Actividades de invocación de teamsTeams invoke activities

En la tabla siguiente se enumeran las actividades de invocación específicas de Teams que Teams envía a un bot.The following table lists the Teams-specific invoke activities Teams sends to a bot. Las actividades de invocación enumeradas son para bots de conversación en Teams.The invoke activities listed are for conversational bots in Teams. Bot Framework SDK también admite invocaciones específicas de las extensiones de mensajería.The Bot Framework SDK also supports invokes specific to messaging extensions. Para obtener más información, consulte el artículo ¿Qué son las extensiones de mensajería de Teams?.For more information, see the Teams What are messaging extensions article.

A continuación se muestra una lista de todos los controladores de actividades de Teams a los que se llama desde el controlador de actividades OnInvokeActivityAsync de Teams:Here is a list of all of the Teams activity handlers called from the OnInvokeActivityAsync Teams activity handler:

Tipos de invocaciónInvoke types ControladorHandler DescripciónDescription
actionableMessage/executeActionactionableMessage/executeAction OnTeamsO365ConnectorCardActionAsync Acción de tarjeta del conector de O365 de Teams.Teams O365 Connector Card Action.
CardAction.InvokeCardAction.Invoke OnTeamsCardActionInvokeAsync Invocación de acción de tarjeta de Teams.Teams Card Action Invoke.
fileConsent/invokefileConsent/invoke OnTeamsFileConsentAcceptAsync Aceptación de consentimiento de archivo de Teams.Teams File Consent Accept.
fileConsent/invokefileConsent/invoke OnTeamsFileConsentAsync Consentimiento de archivo de Teams.Teams File Consent.
fileConsent/invokefileConsent/invoke OnTeamsFileConsentDeclineAsync Consentimiento de archivo de Teams.Teams File Consent.
signin/verifyStatesignin/verifyState OnTeamsSigninVerifyStateAsync Comprobación de estado de inicio de sesión de Teams.Teams Sign in Verify State.
task/fetchtask/fetch OnTeamsTaskModuleFetchAsync Captura del módulo de tareas de Teams.Teams Task Module Fetch.
task/submittask/submit OnTeamsTaskModuleSubmitAsync Envío del módulo de tareas de Teams.Teams Task Module Submit.

Pasos siguientesNext steps

Para crear bots para Teams, consulte la documentación para desarrolladores de Microsoft Teams.For building Teams bots, refer to Microsoft Teams Developer documentation.