Como os bots do Microsoft Teams funcionam

aplica-se a: SDK v4

Esta é uma introdução que se baseia no que você aprendeu no artigo Como os bots funcionam e conversas controladas por eventos; você deve estar familiarizado com esses artigos antes de ler isso.

As principais diferenças nos bots desenvolvidos para o Microsoft Teams está em como as atividades são tratadas. O manipulador de atividades do Teams deriva do manipulador de atividades e processa tipos de atividade específicos do Teams antes de processar tipos de atividade mais gerais.

Manipulador de atividades do Teams

Para criar um bot para o Teams, derive seu bot da classe de manipulador de atividades do Teams. Quando tal bot recebe uma atividade, ele encaminha a atividade por meio de vários manipuladores de atividade. O manipulador inicial base é o manipulador de turnos e encaminha a atividade para um manipulador com base no tipo da atividade. O manipulador de turnos chama o manipulador que foi projetado para lidar com o tipo específico de atividade que foi recebido. A classe de manipulador de atividades do Teams é derivada da classe do manipulador de atividade. Além dos tipos de atividade que o manipulador de atividade pode processar, a classe de manipulador de atividades do Teams inclui manipuladores adicionais para atividades específicas do Teams.

Um bot que deriva do manipulador de atividades do Teams é semelhante a um bot que deriva diretamente da classe do manipulador de atividade. No entanto, o Teams inclui informações adicionais em conversationUpdate atividades e envia atividades específicas do invoke Teams.

Quando o bot do manipulador de atividades do Teams recebe uma atividade de mensagem, seu manipulador de turnos encaminha a atividade de mensagem de entrada para seu manipulador, semelhante a como um bot baseado em manipulador – OnMessageActivityAsync de atividades – faria. No entanto, quando o bot do Teams recebe uma atividade de atualização de conversa, a versão do Teams do OnConversationUpdateActivityAsync manipulador processa a atividade.

Não há nenhuma implementação base para a maioria dos manipuladores de atividade específicos do Teams. Você precisará substituir esse manipulador e fornecer a lógica apropriada para o bot.

Todos os manipuladores de atividade descritos na seção de manipulação de atividades do artigo Conversas controladas por eventos usando um manipulador de atividades continuarão a funcionar como fazem com um bot não Teams, com exceção de manipular os membros adicionados e removidos atividades, eles serão diferentes no contexto de uma equipe, em que o novo membro é adicionado à equipe em vez de um thread de mensagem. Confira Atividades de atualização de conversa do Teams para obter mais detalhes.

Para implementar sua lógica para esses manipuladores de atividade específicos do Teams, você substituirá métodos em seu bot.

Lógica de bot do Teams

A lógica do bot processa as atividades de entrada de um ou mais canais e gera atividades de saída em resposta. Isso ainda é verdadeiro para o bot derivado da classe do manipulador de atividade do Teams, que primeiro verifica se há atividades do Teams e, em seguida, passa todas as outras atividades para o manipulador de atividade do Bot Framework.

Atividades de atualização de instalação do Teams

Adicione um manipulador para o evento de atualização de instalação para permitir que o bot:

  • Envie uma mensagem introdutório quando ela estiver instalada em um thread de conversa.
  • Limpe os dados do usuário e do thread para que ele seja desinstalado de um thread.

Confira Evento de atualização de instalação nos documentos do Teams para obter mais informações.

Atividades de atualização de conversa de equipes

A tabela a seguir lista os eventos do Teams que geram uma atividade de atualização de conversa em um bot. O artigo Eventos de atualização da Conversa do Microsoft Teams descreve como usar cada um desses eventos.

Abaixo está uma lista de todos os manipuladores de atividade do Teams chamados do OnConversationUpdateActivityAsync método do manipulador de atividades do Teams.

EventType Manipulador Condição Documentação do Teams
channelCreated OnTeamsChannelCreatedAsync Enviado sempre que um novo canal é criado em uma equipe em que seu bot está instalado. Canal criado.
channelDeleted OnTeamsChannelDeletedAsync Enviado sempre que um canal é excluído em uma equipe em que seu bot está instalado. Canal excluído.
channelRenamed OnTeamsChannelRenamedAsync Enviado sempre que um canal é renomeado em uma equipe em que seu bot está instalado. Canal renomeado.
channelRestored OnTeamsChannelRestoredAsync Enviado sempre que um canal que foi excluído anteriormente é restaurado em uma equipe em que o bot já está instalado. Canal restaurado.
membersAdded OnTeamsMembersAddedAsync Por padrão, chama o ActivityHandler.OnMembersAddedAsync método . Enviado na primeira vez que o bot é adicionado a uma conversa e sempre que um novo usuário é adicionado a um chat de equipe ou grupo em que seu bot está instalado. Os membros da equipe adicionaram.
membersRemoved OnTeamsMembersRemovedAsync Por padrão, chama o ActivityHandler.OnMembersRemovedAsync método . Enviado se o bot for removido de uma equipe e sempre que qualquer usuário for removido de uma equipe da que o bot é membro. Os membros da equipe removeram.
teamArchived OnTeamsTeamArchivedAsync Enviado quando a equipe em que o bot está instalado é arquivada. Equipe arquivada.
teamDeleted OnTeamsTeamDeletedAsync Enviado quando a equipe em que seu bot está foi excluída. A equipe excluiu.
teamRenamed OnTeamsTeamRenamedAsync Enviado quando a equipe em que o bot está foi renomeado. A equipe renomeou.
teamRestored OnTeamsTeamRestoredAsync Enviado quando uma equipe excluída anteriormente em que seu bot está é restaurado. Equipe restaurada.
teamUnarchived OnTeamsTeamUnarchivedAsync Enviado quando a equipe em que o bot está instalado não é desarquivada. Equipe desarquivada.

As equipes chamam atividades

A tabela a seguir lista as atividades de invocação específicas das equipes que o envia para um bot. As atividades de invocação listadas são para bots de conversa em equipes. O SDK do Bot Framework também dá suporte a invocações específicas para extensões de mensagens. Para obter mais informações, consulte o artigo equipes sobre o que são extensões de mensagens .

Veja uma lista de todos os manipuladores de atividade do Teams chamados do manipulador de atividade OnInvokeActivityAsync do Teams:

Invocar tipos Manipulador Descrição
actionableMessage/executeAction OnTeamsO365ConnectorCardActionAsync Ação de Cartão do Conector O365 do Teams.
CardAction.Invoke OnTeamsCardActionInvokeAsync Invocação de Ação de Cartão do Teams.
fileConsent/invoke OnTeamsFileConsentAcceptAsync Aceitação de Consentimento do Arquivo do Teams.
fileConsent/invoke OnTeamsFileConsentAsync Consentimento do Arquivo do Teams.
fileConsent/invoke OnTeamsFileConsentDeclineAsync Consentimento do Arquivo do Teams.
signin/verifyState OnTeamsSigninVerifyStateAsync Estado de Verificação de Entrada do Teams.
task/fetch OnTeamsTaskModuleFetchAsync Busca de Módulo de Tarefa do Teams.
task/submit OnTeamsTaskModuleSubmitAsync Envio de Módulo de Tarefa do Teams.

Próximas etapas

Para criar bots do Teams, consulte a documentação do Desenvolvedor do Microsoft Teams.