Como os bots do Microsoft Teams funcionam

APLICA-SE A: SDK v4

Este artigo se baseia no que você aprendeu em Como os bots funcionam e Conversas orientadas por eventos. Familiarize-se com esses artigos antes de continuar.

A principal diferença nos bots desenvolvidos para o Microsoft Teams é a forma como as atividades são tratadas. O Manipulador de atividades do Teams deriva do manipulador de atividades e processa tipos de atividades específicos do Teams antes de processar tipos de atividades mais gerais.

Observação

Os SDKs JavaScript, C# e Python do Bot Framework continuarão a ser compatíveis. No entanto, o SDK Java está sendo desativado, com o suporte final de longo prazo terminando em novembro de 2023.

Os bots existentes criados com o SDK para Java continuarão a funcionar.

Para a criação de novos bots, considere usar o Power Virtual Agents e ler sobre como escolher a solução de chatbot correta.

Para obter mais informações, confira O futuro da criação de bots.

Manipulador de atividade do Teams

Para criar um bot para o Teams, derive seu bot da classe do manipulador de atividades do Teams. Quando esse bot recebe uma atividade, ele roteia a atividade por meio de vários manipuladores de atividades. O manipulador inicial de base é o manipulador de turnos, que roteia a atividade para um manipulador com base no tipo da atividade. O manipulador de turnos chama o manipulador projetado para manipular o tipo específico de atividade recebido. A classe do manipulador de atividade do Teams é derivada da classe do manipulador de atividades. Além dos tipos de atividade que o manipulador de atividades pode processar, a classe do 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 atividades. No entanto, o Teams inclui informações adicionais nas atividades conversationUpdate e envia invoke específico do Teams e atividades event.

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

Não há implementação base para a maioria desses manipuladores de atividade específicos do Teams. Será preciso substituir esses manipuladores e fornecer a lógica apropriada para seu bot.

Todos os manipuladores de atividades descritos na seção de manipulação de atividades do artigo Conversas orientadas por eventos usando um manipulador de atividades continuarão funcionando como fazem com um bot que não seja do Teams, exceto para lidar com as atividades adicionadas e removidas de membros, essas atividades serão diferentes no contexto de uma equipe, em que o novo membro é adicionado à equipe, em oposição a um encadeamento de mensagens. Para obter mais informações, confira Atividades de atualização de conversa do Teams.

Para implementar sua lógica para esses manipuladores de atividade específicos do Teams, substitua os métodos do 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 seu bot:

  • Envie uma mensagem introdutória quando estiver instalado em um thread de conversa.
  • Limpe os dados do usuário e do thread quando for 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 do Microsoft Teams Eventos de atualização de conversa descreve como usar cada um desses eventos.

Veja a seguir uma lista de todos os manipuladores de atividades do Teams chamados do método OnConversationUpdateActivityAsync 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 na qual seu bot está instalado. Canal criado.
channelDeleted OnTeamsChannelDeletedAsync Enviado sempre que um canal é excluído em uma equipe na qual seu bot está instalado. Canal excluído.
channelRenamed OnTeamsChannelRenamedAsync Enviado sempre que um canal é renomeado em uma equipe na qual seu bot está instalado. Canal renomeado.
channelRestored OnTeamsChannelRestoredAsync Enviado sempre que um canal que foi excluído anteriormente é restaurado em uma equipe na qual seu bot já está instalado. Canal restaurado.
membersAdded OnTeamsMembersAddedAsync Por padrão, chama o método ActivityHandler.OnMembersAddedAsync. Enviado na primeira vez que o bot é adicionado a uma conversa e toda vez que um novo usuário é adicionado a uma equipe ou chat em grupo no qual seu bot está instalado. Membros da equipe adicionados.
membersRemoved OnTeamsMembersRemovedAsync Por padrão, chama o método ActivityHandler.OnMembersRemovedAsync. Enviado se o bot for removido de uma equipe e toda vez que algum usuário for removido de uma equipe da qual o bot seja membro. Membros da equipe removidos.
teamArchived OnTeamsTeamArchivedAsync Enviado quando a equipe na qual o bot está instalado é arquivada. Equipe arquivada.
teamDeleted OnTeamsTeamDeletedAsync Enviado quando a equipe em que seu bot está foi excluída. Equipe excluída.
teamRenamed OnTeamsTeamRenamedAsync Enviado quando a equipe em que seu bot está foi renomeada. Equipe renomeada.
teamRestored OnTeamsTeamRestoredAsync Enviado quando uma equipe anteriormente excluída, na qual seu bot está, é restaurada. Equipe restaurada.
teamUnarchived OnTeamsTeamUnarchivedAsync Enviado quando a equipe na qual o bot está instalado é desarquivada. Equipe desarquivada.

Atividades do evento do Teams

A tabela a seguir lista as atividades de evento específicas do Teams que ele envia a um bot. As atividades de evento listadas são para bots de conversa no Teams.

Esses são os manipuladores de atividades de eventos específicos do Teams chamados do manipulador OnEventActivityAsync de atividades do Teams.

Tipos de evento Manipulador Descrição
application/vnd.microsoft.meetingEnd OnTeamsMeetingEndAsync O bot está associado a uma reunião que acabou de terminar.
application/vnd.microsoft.meetingStart OnTeamsMeetingStartAsync O bot está associado a uma reunião que acabou de começar.

Atividades de invocação do Teams

A tabela a seguir lista as atividades de invocação específicas do Teams que ele envia a um bot. As atividades de invocação listadas se destinam a bots de conversas no Teams. O SDK do Bot Framework também dá suporte a invocações específicas para extensões de mensagens. Para obter mais informações, confira o artigo do Teams O que são extensões de mensagens.

Observação

A documentação da plataforma Microsoft Teams e a biblioteca de cliente JavaScript do Teams (TeamsJS) referem-se aos módulos de tarefas como caixas de diálogo modais. Para obter mais informações, veja Caixas de diálogo.

Veja uma lista de todos os manipuladores de atividade do Teams chamados do manipulador OnInvokeActivityAsync de atividade 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.