Microsoft Teams

Quando você configura um canal do Microsoft Teams, os usuários podem bater papo com seu assistente digital (ou com uma habilidade standalone) pela interface do usuário do Microsoft Teams.

Este é o processo para configurar um canal:

  1. No Portal do Desenvolvedor do Microsoft Teams, crie um aplicativo e adicione um bot a esse aplicativo.
  2. Usando o ID do aplicativo e a senha do bot, crie um canal no Digital Assistant.
  3. Copie o URL do webhook que é gerado quando você cria o canal e adicione-o ao bot.
  4. Teste seu assistente digital no Microsoft Teams.
Observação

As habilidades e os assistentes digitais que você expõe por meio dos canais do Microsoft Teams também podem ser incluídos em chats de grupo. Consulte Chats de Grupo.

Etapa 1: Criar um Bot

Para disponibilizar seu assistente digital (ou habilidade standalone) no Microsoft Teams, crie o seguinte por meio do Portal do Desenvolvedor de Equipes:

  • Um aplicativo Microsoft Teams. Este aplicativo é o contêiner para o bot que você cria e é como você acessa o bot no Teams.
  • Um bot. Este é o artefato dentro do aplicativo que se comunica com o Oracle Digital Assistant
Observação

O Teams Developer Portal não está disponível para alguns tipos de locatários da Microsoft, como locatários do GCC-High e do Departamento de Defesa (DoD). Se você estiver trabalhando com esse tenant, poderá usar um tenant regular para criar o aplicativo, fazer download do aplicativo e, em seguida, usar o Microsoft Graph para fazer upload do aplicativo para sua nuvem nacional. Consulte Portal do Desenvolvedor para Equipes e Implantações de Nuvem Nacional no site da Microsoft para obter detalhes.

São estas as etapas:

  1. Vá para https://dev.teams.microsoft.com/home e faça login com sua conta da Microsoft.
  2. Na navegação esquerda, clique em Aplicativos.
  3. Clique em + Nova aplicação.
  4. Na caixa de diálogo Adicionar Aplicativo, preencha o nome que você deseja usar para o aplicativo, pois ele aparecerá no Microsoft Teams e clique em Adicionar.

    (Este aplicativo encapsulará o bot, que você criará posteriormente.)

  5. Na página Informações Básicas, preencha os campos obrigatórios restantes, exceto o ID do Aplicativo (cliente) e clique em Salvar.
    Observação

    Este campo só será necessário se você configurar o bot para sign-on único. Consulte Configuração do SSO para Canais do Microsoft Teams.
  6. Na navegação esquerda da página, na seção Configurar, selecione Recursos do aplicativo.
  7. Clique em Bot.
  8. Clique no link Criar um novo bot.
  9. Na página Gerenciamento de Bots, clique em + Novo Bot.
  10. Na caixa de diálogo Adicionar bot, informe um nome para o bot.
  11. Na seção Canais da página, marque a caixa de seleção Microsoft Teams e clique em Salvar.
  12. Na seção Segredos do Cliente, selecione Adicionar um segredo do cliente para seu bot.
  13. Copie o valor do segredo do cliente gerado e salve-o em um local seguro no seu sistema.
  14. Na seção Segredos do Cliente da página, clique com o botão direito do mouse no link Azure para abrir a página Registros de Aplicativos do Azure Active Directory em uma guia separada do browser.
  15. Na página Registros de Aplicativo, selecione o recurso de bot que você criou.
  16. No trilho esquerdo, selecione Autenticação.
  17. Na seção Tipos de conta suportados da página, selecione a opção multitenant (Contas em qualquer diretório organizacional (Qualquer tenant do Microsoft Entra ID - Multitenant).
  18. Se você quiser poder usar eventos externos para enviar mensagens aos usuários por meio de um canal do Microsoft Teams, adicione permissões para extrair o perfil do usuário por meio da API do Microsoft Graph. (O recurso de eventos externos usa dados de usuário armazenados em cache de conversas anteriores para gerar notificações ou iniciar conversas proativamente com o usuário.) Aqui estão as etapas para adicionar essas permissões:
    1. Na navegação esquerda da página Registros de Aplicativo do bot, selecione Permissões de API.
    2. Clique em Adicionar uma Permissão.
    3. Na caixa de diálogo Solicitar permissões de API, selecione Microsoft Graph.
    4. Selecione Permissões do aplicativo.
    5. Selecione a permissão Directory.Read.All e clique em Adicionar Permissões.
    6. Depois que a permissão aparecer na lista Permissões configuradas, selecione a permissão, clique em Conceder consentimento do administrador para... e, em seguida, clique em Sim na caixa de diálogo Conceder confirmação de consentimento do administrador.
  19. Volte para a guia em que você tem o Portal do Desenvolvedor aberto em seu navegador.

  20. Na navegação esquerda, clique em Aplicativos e selecione seu aplicativo.

  21. Na navegação à esquerda do aplicativo, selecione Recursos do aplicativo.

  22. Clique no mosaico Bot.

  23. Na lista drop-down abaixo de Selecionar um bot existente, selecione o bot que você acabou de criar.

  24. Mais uma vez, na navegação esquerda do aplicativo, selecione Recursos do aplicativo.

  25. No título Bot, copie o ID do bot e salve-o em um arquivo de texto.

    Observação

    Talvez você precise transcrever manualmente o ID do bot.

    Você precisará desse ID quando criar o canal no Digital Assistant.

  26. Na seção Escopos da página, selecione Pessoal.

    (Você também pode selecionar outros escopos, mas Pessoal é necessário para que o bot responda.)

  27. Clique em Salvar.

  28. Opcionalmente, na navegação esquerda da página, na seção Configurar, selecione Domínios e adicione quaisquer domínios dos quais os usuários do bot possam estar vindo.

  29. Deixe o Portal do Desenvolvedor aberto no browser.

    Posteriormente, você concluirá o registro com um URL do webhook que você obtém quando cria o canal no Digital Assistant.

Etapa 2: Criar um Canal no Digital Assistant

  1. Em outra janela ou guia do browser, abra o Digital Assistant, clique em Canais no menu esquerdo e escolha Usuários.

  2. Clique em + Canal para abrir a caixa de diálogo Criar Canal.

  3. Dê um nome ao canal.

  4. Escolha Microsoft Teams como tipo de canal.

  5. Preencha o ID do Microsoft Bot com o ID do bot da Microsoft que você criou.

  6. Preencha a Microsoft Bot Password (Valor do Segredo do Cliente) com a senha ou o valor do segredo do cliente (não deve ser confundido com o ID do segredo do cliente) que foi gerado para o bot.

  7. Clique em Criar.

  8. Na página Canais, copie o URL do WebHook e cole-o em algum lugar conveniente no seu sistema.

  9. Clique em ícone da lista drop-down Rotear para... e selecione o assistente digital ou a habilidade que deseja associar ao canal.

  10. Alterne para ativado o controle Canal Ativado.

Etapa 3: Configurar o URL do Webhook para o Microsoft Teams

Agora você precisa voltar e concluir a configuração no Microsoft Teams.

  1. Volte para a guia do navegador onde você tem o Portal do Desenvolvedor de Equipes aberto.

  2. Na navegação à esquerda da página, selecione o ícone Ferramentas e clique em Gerenciamento de Bot.

  3. Selecione o bot que você criou.

  4. Na página do bot, selecione a guia Configurar.
  5. No campo Endereço do ponto final do bot, cole o URL do webhook que você obteve ao criar o canal no Digital Assistant e clique em Salvar.

Etapa 4: Ativar Aplicativos no seu Tenant do Office 365

Em seguida, você precisará que o administrador do Office 365 configure seu tenant para:

  • Permitir aplicativos externos no Microsoft Teams.
  • Permitir carregamento lateral de aplicativos externos.
  • Ativar novos aplicativos externos por padrão.

Para obter as etapas concretas, consulte https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/build-and-test/prepare-your-o365-tenant.

Etapa 5: Testar no Microsoft Teams

Concluída a configuração do canal e das mensagens do Microsoft Teams, você pode testar seu assistente digital (ou habilidade) no Microsoft Teams. Para fazer isso:

  • Na página do aplicativo que você criou com o Microsoft Developer Portal, clique no botão Visualizar no Teams.

Configuração de SSO para Canais do Microsoft Teams

Se quiser que um assistente digital ou uma habilidade exija a mesma autenticação configurada para o Microsoft Teams, você poderá configurar a autenticação de sign-on único (SSO) para esse assistente digital ou essa habilidade no Microsoft Teams.

Uma vez configurada a autenticação SSO, os usuários poderão fazer log-in no Teams com suas credenciais do Azure Active Directory (Azure AD) e depois interagir facilmente com o assistente digital, sem precisar acessar o sistema novamente.

Observação

Qualquer aplicativo de backend acessado por meio do assistente digital precisa suportar os tokens de acesso do Azure AD diretamente. Os clientes de Aplicativos em Nuvem (FA) baseados no Fusion que usam o Teams também podem ter o SSO ativado entre o Azure AD e o FA. No entanto, ainda não é possível ter uma conversa perfeita com o FA de uma sessão do Teams, pois o token de acesso de segurança gerado pelo Teams não pode ser usado diretamente para se comunicar com o FA. Para resolver essa discrepância, você pode implementar uma solução personalizada para uma troca de token. Consulte esta publicação no blog para obter detalhes.

Aqui estão as etapas gerais para configurar o SSO para um canal do Microsoft Teams:

  1. (Se você ainda não tiver feito isso) crie um canal do Microsoft Teams conforme descrito nos tópicos anteriores.
  2. Crie um aplicativo Azure AD no Portal do Azure.
  3. Atualize o registro do bot Microsoft com detalhes de SSO.
  4. No Oracle Digital Assistant, registre o aplicativo Azure AD como serviço de autenticação do Microsoft Identity Platform.
  5. Ative a autenticação em sua(s) habilidade(s) por meio do serviço de autenticação registrado.

Criar um Aplicativo Azure AD

Para configurar o SSO para uma habilidade ou um assistente digital no Microsoft Teams, você precisa criar um aplicativo do Azure AD. Esse aplicativo é além do aplicativo Azure AD que você já criou como parte da configuração do canal do Microsoft Teams.

Antes de começar, verifique se você tem:

  • Uma conta do Azure com uma assinatura ativa.
  • O ID do Aplicativo Microsoft para o bot que você configurou com seu canal do Microsoft Teams.
  • Acesso de administrador ao portal do Azure.

Veja as etapas para criar um aplicativo Azure AD para SSO:

  1. Criar um novo registro de aplicativo:
    1. Navegue até https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade no portal do Azure.
    2. Clique em Novo Registro.
    3. Preencha o campo Nome.
    4. Na seção Tipos de conta suportados, selecione o botão de opção Contas em qualquer diretório organizacional (Qualquer diretório AD do Azure - Multitenant) e contas pessoais da Microsoft (por exemplo, Skype, Xbox).
    5. Clique em Registrar.

      Depois que o aplicativo for criado, você entrará na seção Visão Geral. O ID do Aplicativo (cliente) e o ID do Diretório (tenant) devem ser criados para o aplicativo.

  2. Adicione uma configuração de plataforma web:
    1. Na navegação esquerda, selecione Autenticação.
    2. Em Configurações de plataforma, clique em Adicionar uma plataforma e selecione Web.
    3. Adicione um URI de redirecionamento usando o seguinte formato:
      <YOUR_Oracle-Digital-Assistant_URL>/connectors/v2/callback
    4. Clique em Configurar.
  3. Crie um segredo do cliente:
    1. Na navegação esquerda, selecione Certificados e segredos.
    2. Clique em + Novo segredo do cliente, preencha os campos obrigatórios e clique em Adicionar.
    3. Copie o valor do segredo do cliente e guarde-o em um local seguro. Você precisará desse valor posteriormente.
  4. Configure o token:
    1. Na navegação esquerda, selecione Configuração de token.
    2. Clique em + Adicionar reivindicação opcional.
    3. Para Tipo de token, selecione Acesso.
    4. Selecione estas reivindicações:
      • given_name
      • upn
      • email
    5. Clique em Adicionar.
    6. Selecione a opção Ativar o e-mail do Microsoft Graph, permissão de perfil (obrigatório para que as reivindicações apareçam no token) e clique em Adicionar.
    7. Na navegação esquerda, selecione Permissões de API.

      Você pode ver que três permissões foram criadas.

    8. Clique em + Adicionar uma Permissão e adicione User.ReadBasic.All.

      Você precisará disso para acessar as informações do perfil.

  5. Defina o URI do ID do aplicativo:
    1. Na navegação esquerda, selecione Expor uma API.
    2. Clique no campo URI do ID do Aplicativo.
    3. Atualize o valor no formato:
      api://botid-<Microsoft_App_ID_for_your_bot>
      Observação

      Esse precisa ser o ID do aplicativo do bot, não o do APP SSO.
    4. Clique em + Adicionar um escopo.
    5. No painel que é aberto:
      • Defina access_as_user com o nome do Escopo.

        A parte do domínio do nome do escopo exibido logo abaixo do campo de texto deve corresponder automaticamente ao URI do ID do Aplicativo definido na etapa anterior, com /access_as_user adicionado ao final.

      • Defina Quem pode consentir?como Administradores e usuários.
    6. Preencha os campos para configurar os prompts de consentimento do administrador e do usuário com valores apropriados para o escopo access_as_user.

      Aqui estão algumas sugestões:

      • Título do consentimento do administrador: As equipes podem acessar o perfil do usuário.
      • Descrição do consentimento do administrador: Permite que as Equipes chamem as APIs web do aplicativo como usuário atual.
      • Título do consentimento do usuário: As equipes podem acessar o perfil do usuário e fazer solicitações em seu nome.
      • Descrição do consentimento do usuário: Permite que as Equipes chamem as APIs desse aplicativo com os mesmos direitos que você tem
    7. Certifique-se de que Estado esteja definido como Ativado.
    8. Na seção Aplicativos clientes autorizados, clique em + Adicionar um aplicativo cliente.
    9. Digite os seguintes IDs:
      • 1fec8e78-bce4-4aaf-ab1b-5451cc387264

        Este é o aplicativo móvel e de desktop das Equipes.

      • 5e3ce6c0-2b1f-4285-8d4b-75ee78787346

        Este é o aplicativo web das Equipes.

  6. Atualize o manifesto:
    1. Na navegação esquerda, selecione Manifesto.
    2. Defina "acceptMappedClaims" como true.
    3. Defina "accessTokenAcceptedVersion" como 2.
    4. Clique em Salvar.
  7. Conceda permissões de administrador de tenant ao aplicativo Azure AD.
    1. Na navegação esquerda, selecione Visão Geral.
    2. Copie o ID do Aplicativo (cliente), o ID do Diretório (tenant) e o URI do ID do Aplicativo e salve-os em um local conveniente.
    3. Em uma janela privada do browser, faça log-in na conta de administrador da Microsoft.
      O URL tem o seguinte formato:
       https://login.microsoftonline.com/<tenant-id>/adminconsent?client_id=<client-id>
      em que você substitui <tenant-id> pelo ID do Diretório (tenant) que você acabou de copiar e substitui <client-id> pelo ID do Aplicativo (cliente) que acabou de copiar.
  8. Na caixa de diálogo Permissões solicitadas, verifique e aceite as permissões.

Atualizar o Registro de Bot com os Detalhes do SSO

Atualize seu bot Microsoft com os detalhes de SSO configurados:

  1. Abra o bot no Portal do Desenvolvedor de Equipes e abra o Editor de Manifestos.
  2. Selecione a guia Informações básicas.
  3. Role para baixo até o campo Application (client) ID e insira o ID do aplicativo (client).
  4. Selecione a guia Sign-On Único.
  5. No URI do ID do Aplicativo, adicione o URI do ID do aplicativo copiado anteriormente.
  6. Na navegação esquerda, selecione Publicar na organização.

Registrar o Aplicativo Azure AD como Serviço de Autenticação no Digital Assistant

Agora você registrará o aplicativo Azure AD como serviço de autenticação no Oracle Digital Assistant.

  1. Em outra janela ou guia do browser, abra o Digital Assistant, expanda Definições no menu esquerdo e selecione Serviços de Autenticação.

  2. Clique em + Serviço.
  3. Na caixa de diálogo Novo Serviço de Autenticação, digite estes valores:
    • Provedor de Identidades: Microsoft Identify Platform
    • Nome: Um nome para identificar o serviço de autenticação.
    • URL de Ponto Final do Token: O URL do provedor de identidades para solicitar tokens de acesso. Uso:
      https://login.microsoftonline.com/<Azure-Active-Directory-TenantID>/oauth2/v2.0/token
    • Ponto Final de Autorização: O URL do IDP da página na qual os usuários fazem a autenticação informando seus nomes de usuário e senhas. Uso:
      https://login.microsoftonline.com/<Azure-Active-Directory-TenantID>/oauth2/v2.0/authorize
    • ID e Segredo do Cliente: O ID e o segredo do cliente para o aplicativo Azure AD (Cliente OAuth) que foi registrado. Use o ID e o segredo do aplicativo.
    • Escopo: <Application(client)_ID_for_your_bot>/access_as_user
    • Reivindicação do Sujeito: A reivindicação do perfil de token de acesso a ser usada para identificar o usuário. Use e-mail.

Referenciar o Serviço de Autenticação em Suas Habilidades

Em habilidades que precisam de autenticação de SSO, incorpore o componente OAuth 2.0 Account Link no fluxo de caixas de diálogo para tratar a autenticação por meio do serviço de autenticação. Nesse componente, certifique-se de definir a propriedade enableSingleSignOn como true. (Para fluxos de caixas de diálogo baseados em YAML, o componente é chamado System.OAuth2AccountLink.)

Dica:

Se você não quiser codificar o nome do serviço de autenticação no componente, poderá criar um parâmetro personalizado que você transmita ao componente. Consulte Parâmetros Personalizados.

Capacidades Suportadas

Os canais do Microsoft Teams no Digital Assistant suportam as seguintes capacidades:

  • texto (envio e recebimento)
  • imagens (envio e recebimento)
  • arquivos (envio e recebimento)
  • emojis (envio e recebimento)
  • links
  • postbacks
  • propriedades personalizadas
  • componentes de carrossel
  • componentes de lista

Se você estiver direcionando sua habilidade para vários canais com diferentes recursos de formatação e sintaxe, poderá usar a marcação HTML básica em suas mensagens. Se você fizer isso, essa marcação será convertida automaticamente para o formato de markdown do Microsoft Teams quando a mensagem for transmitida para o canal. Isso é particularmente útil se você estiver direcionando suas habilidades para outros canais, além do Microsoft Teams. Consulte Formatação de Rich Text em Canais.

Restrições de Mensagens

Os canais do Microsoft Teams no Digital Assistant têm as seguintes restrições de mensagens:

  • Mensagens de Texto
    • Tamanho máximo do label de ação do texto: 1 linha (cerca de 50 caracteres)
    • Tipos de ações de texto permitidos: Postback, Chamada, URL
  • Cartões Horizontais
    • Tamanho máximo do título: 2 linhas (cerca de 80 caracteres)
    • Tamanho máximo da descrição: 25.000 caracteres
    • Tamanho máximo do label de ação do cartão: 1 linha (cerca de 50 caracteres)
    • Número máximo de cartões: 10
    • Número máximo de ações do cartão: 6. Se o número de ações do cartão passar de 6, o cartão será duplicado para renderizar o restante das ações.
    • Número mínimo de ações do cartão: 0.
    • Número máximo de ações da lista de cartões: 6
    • Pelo menos uma descrição, imagem ou ação é necessária?: Não
    • Tipos de ações de cartão permitidos: Postback, Chamada, URL
    • Tipos de ações da lista de cartões permitidos: Postback, Chamada, URL
  • Cartões Verticais
    • Tamanho máximo do título: 2 linhas (cerca de 80 caracteres)
    • Tamanho máximo da descrição: 25.000 caracteres
    • Tamanho máximo do label de ação do cartão: 1 linha (cerca de 50 caracteres)
    • Número máximo de cartões: 10
    • Número máximo de ações do cartão: 3.
    • Número mínimo de ações do cartão: 0.
    • Número máximo de ações da lista de cartões: 6
    • Pelo menos uma descrição, imagem ou ação é necessária?: Não
    • Tipos de ações de cartão permitidos: Postback, Chamada, URL
    • Tipos de ações da lista de cartões permitidos: Postback, Chamada, URL
  • Mensagens de Anexo
    • Suportado?: Sim
    • Tipos de ações permitidos: Postback, Chamada, URL
  • Botões de Ação
    • Tamanho máximo do label de ação global: 1 linha (cerca de 50 caracteres)
    • Número máximo de ações globais: 6
    • Tipos de ações globais permitidos: Postback, Chamada, URL

Cartões Adaptáveis no Microsoft Teams

Para habilidades que você expõe por meio dos canais do Microsoft Teams no Oracle Digital Assistant, você pode usar Cartões Adaptáveis.

Para fazer isso, use o elemento channelCustomProperties em um componente Resposta Comum e defina a propriedade type como "AdaptiveCard".

Você pode usar este elemento no componente nos seguintes níveis:

  • No nível de um elemento de cartão, dentro de um item de resposta cards. Isso permite que você defina uma estrutura de cartão adaptável única que será usada como modelo várias vezes quando um iteratorVariable tiver sido especificado para o elemento de cartão.
  • No nível de um item de resposta de texto, geralmente para criar um cartão adaptável único. ( Vários cartões podem ser definidos, mas a propriedade iteratorVariable não é suportada aqui.)

Dica:

No editor de fluxo de caixas de diálogo (no modo de caixa de diálogo Visual e YAML), há um modelo Microsoft Adaptive Cards que contém metadados de amostra que você pode adaptar às suas necessidades.
Observação

No momento, o Microsoft Teams não suporta um carrossel com cartões adaptáveis. Em termos de metadados do componente Resposta Comum, isso significa que a propriedade de layout do cartão é ignorada. Os cartões sempre serão dispostos verticalmente porque o layout horizontal (carrossel) simplesmente não é suportado.

Uma segunda limitação da qual estar ciente é que quando um usuário tocar em um botão incluído no cartão adaptável, o label do botão não será impresso como mensagem do usuário no histórico de conversas. Em outras palavras, o usuário não recebe uma confirmação visual de qual botão ele selecionou. Isso pode levar a uma experiência inconsistente do usuário, pois os botões exibidos com mensagens de texto simples ou com cartões padrão do componente Resposta Comum (usando o cartão Microsoft Hero) imprimem o label do botão.

Exemplo: Cartão Adaptável no Item de Resposta de Cartões

Para produzir vários cartões, você pode usar a propriedade iteratorVariable com o elemento card em um item de resposta do tipo cartões. Veja um exemplo de uso de cartão adaptável para produzir diversos cartões de pizza:

responseItems:
  - type: "cards"
    headerText: "Here are our pizzas you can order today:"
    cardLayout: "horizontal"
    cards:
      - title: "${pizzas.name}"
        description: "${pizzas.description}"
        imageUrl: "${pizzas.image}"
        iteratorVariable: "pizzas"
        actions:
          - label: "Order Now"
            type: "postback"
            payload:
              action: "order"
              variables:
                orderedPizza: "${pizzas.name}"
                orderedPizzaImage: "${pizzas.image}"
        channelCustomProperties:
        - channel: "msteams"
          properties:
            adaptiveCard:
              type: "AdaptiveCard"
              version: "1.0"
              fallbackText: "Adaptive card version not supported"
              body:
              - type: "TextBlock"
                text: "${pizzas.name}"
                weight: "bolder"
              - type: "TextBlock"
                text: "${pizzas.description}"
                wrap: true
              - type: "Image"
                url: "${pizzas.image}"
                horizontalAlignment: "center"
              actions:
              - type: "Action.Submit"
                title: "Order"
                data: 
                  action: "order" 
                  variables:
                    orderedPizza: "${pizzas.name}"
                    orderedPizzaImage: "${pizzas.image}"

Exemplo: Cartão Adaptável no Item de Resposta de Texto

Você pode definir um cartão adaptável com um item de resposta de texto da seguinte forma:

responseItems:
  - type: "text"
    text: "This text is replaced with adaptive card defined in custom property"
    footerText: "Is that correct?"
    visible:
      expression: "${system.channelType=='msteams' && system.entityToResolve.value.name=='Confirmed'}"
    channelCustomProperties:
      - channel: "msteams"
        properties:
          adaptiveCard:
            type: "AdaptiveCard"
            version: '1.0'          
            fallbackText: "Adaptive card version not supported"                                             
            body:
            - type: TextBlock
              text: 'I have all information needed to create your expense. Just to verify my understanding, here is an overview of your expense:'
              wrap: true
            - type: FactSet
              facts:
              - title: Expense Type
                value: "${expense.value.Type}"
              - title: Amount
                value: "${expense.value.Amount.totalCurrency}"
              - title: Date
                value: "${expense.value.Date.date?number_to_date}"
              - title: Receipt URL
                value: "${expense.value.Receipt?has_content?then(expense.value.Receipt.url,'N/A')}"
 
            actions:
            - type: Action.ShowCard
              title: Edit
              id: edit
              card:
                type: AdaptiveCard             
                version: '1.0'
                body:
                - type: TextBlock
                  size: Medium
                  weight: Bolder
                  text: Edit Expense
                - type: TextBlock
                  text: Expense Type
                  weight: Bolder
                - type: Input.ChoiceSet
                  choices:
                  - title: Metro, bus, train
                    value: Public transport
                  - title: Taxi
                    value: Taxi
                  - title: Breakfast, lunch, dinner
                    value: dinner
                  id: Type
                  value: "${expense.value.Type!''}"
                  spacing: None
                - type: TextBlock
                  text: Amount
                  weight: Bolder
                - type: Input.Text
                  id: amount
                  spacing: None
                  value: "${expense.value.Amount?has_content?then(expense.value.Amount.totalCurrency,'')}"
                - type: TextBlock
                  text: Date
                  weight: Bolder
                - type: Input.Date
                  id: Date
                  value: "${expense.value.Date?has_content?then(expense.value.Date.date?number_to_date,'')}"
                  spacing: None
                actions:
                - type: Action.Submit
                  title: Submit
                  id: submit

Também é possível definir vários cartões adaptáveis nessa propriedade personalizada. Para fazer isso, prefixe a propriedade type com uma traço (-) para indicar uma lista YAML em vez de um mapa:

channelCustomProperties:
  - channel: "msteams"
    properties:
      adaptiveCard:
      - type: AdaptiveCard
        body: ...
      - type: AdaptiveCard
        body: ...

Isso poderá ser conveniente se você precisar produzir vários cartões estáticos, mas será mais comum produzir diversos cartões usando a propriedade iteratorVariable.

Ações de Envio

Os Cartões Adaptáveis têm uma ação de envio (Action.Submit), que você pode usar para reunir a entrada do usuário e enviá-la à habilidade.

Defina o payload da ação na propriedade data da ação de envio. Se quiser que o componente Resposta Comum seja alterado após o botão ser selecionado ou definir algumas variáveis, você poderá usar as propriedades padrão action e variables:

actions:
- type: "Action.Submit"
  title: "Order"
  data: 
    action: "order" 
    variables:
      orderedPizza: "${pizzas.name}"
      orderedPizzaImage: "${pizzas.image}"

Caso esteja usando campos de entrada em seu cartão, o nome e o valor desses campos serão adicionados como pares de chave/valor ao objeto JSON data. O exemplo anterior com o cartão Editar Despesa inclui três campos para modificar o tipo, o valor e a data da despesa. Quando o usuário toca no botão Submeter nesse caso, um objeto JSON como este será enviado:

{
  "Type" : "Taxi",
  "Amount" : "10.0 dollar"
  "Date" : "2019-09-02"
}

O componente Resposta Comum não sabe como processar essas informações, porque ele não segue a estrutura de payload comum com as propriedades action e variables. Para resolver essa questão, você tem estas opções:

  • Converta o payload JSON em uma string, que será correspondida para entidades. Se qualquer correspondência for encontrada, a variável definida com o componente será atualizado com os valores da entidade correspondente (no caso de uma entidade composta).

    Para configurar essa opção, adicione a propriedade booliana system.convertToString à propriedade data da ação de envio:

    actions:
    - type: Action.Submit
      title: Submit
      id: submit                   
      data:
        system.convertToString: true
  • Faça com que a habilidade atualize variáveis com o mesmo nome dos campos de entrada. No exemplo anterior, as variáveis "Type", "Amount" e "Date" seriam atualizadas.

    Para configurar essa opção, adicione a propriedade booliana system.setVariables à propriedade data da ação de envio:

    actions:
    - type: Action.Submit
      title: Submit
      id: submit                   
      data:
        system.setVariables: true

Se você não configurar qualquer uma dessas opções, os valores submetidos serão simplesmente ignorados.

Ao usar um componente de Resposta Comum com uma entidade composta, você geralmente usará a primeira opção, que preencherá todas as entidades correspondentes no repositório com base no payload JSON identificado.

Observação

Defina a propriedade processUserMessage do componente como true para que essas ações de envio funcionem.

Repetir Texto do Botão Selecionado no Cartão Adaptável

Quando um usuário seleciona um botão em um Cartão Adaptável, a conversa não é atualizada para mostrar que o usuário selecionou essa opção, a menos que você inclua uma ação messageBack para o cartão.

Para configurar uma ação messageBack, consulte https://docs.microsoft.com/en-us/microsoftteams/platform/task-modules-and-cards/cards/cards-actions#adaptive-cards-with-messageback-action.

Desativar Botões e Campos em Cartões Adaptáveis

Embora não seja possível desativar tecnicamente botões e campos em Cartões Adaptáveis, você pode criar um efeito semelhante substituindo o cartão quando uma ação de envio for chamada. Você faz isso usando a propriedade booliana replaceMessage específica dos componentes do Microsoft Teams in Common Response.

Para permitir que o cartão seja novamente renderizado dessa forma, adicione essa propriedade na seção channelCustomProperties do componente de resposta personalizado:

        ...
           - type: "text"
             text: "This text is replaced with the adaptive card defined in custom property"
             channelCustomProperties:
               - channel: "msteams"
                 properties:
                   replaceMessage: "true"
                   adaptiveCard:
                     ...

Você também pode usar uma expressão do Apache FreeMarker para definir o valor da propriedade.

Dicas para Criar Definições de Cartões Adaptáveis

O esquema JSON de cartões adaptáveis é relativamente complexo com diversas construções suportadas. Dessa forma, é propenso a erros quando você tenta definir o conteúdo do cartão adaptável à mão diretamente em um componente de Resposta Comum. Você pode achar mais fácil usar o seguinte processo para criar os cartões adaptáveis:

  1. Com as ferramentas visuais no Microsoft Adaptive Cards Designer, crie a definição de cartão adaptável.
  2. Clique em Copiar JSON do Cartão para obter a definição no formato JSON.
  3. Use um conversor on-line (como https://jsonformatter.org/json-to-yaml) para converter a definição em YAML.
  4. Copie o resultado em um editor de texto e insira o recuo necessário para o lugar onde ele aparecerá na definição do fluxo de caixas de diálogo.
  5. Cole o texto resultante no fluxo de caixas de diálogo.
Observação

Para se manter atualizado sobre a versão dos Cartões Adaptáveis suportados pelo Teams, consulte https://docs.microsoft.com/en-us/adaptive-cards/resources/partners. Você pode visitar https://adaptivecards.io/explorer/ para obter uma lista de todos os elementos e propriedades e a versão em que eles foram introduzidos.

Tenha em mente que o designer de cartão adaptável não verifica a combinação dos elementos usados e o número da versão de cartões adaptáveis. Por exemplo, o elemento ActionSet foi introduzido na versão 1.2, mas o designer não o apresenta a você na adição desse elemento, mesmo que você tenha especificado 1.0 como número da versão no designer.

Se quiser usar ações com 1.0, você poderá usar a propriedade actions abaixo da propriedade body. Esse elemento actions não pode ser adicionado usando o designer visual; portanto, você precisará fazer isso manualmente.

Desativar a Mensagem de Boas-vindas de um Assistente Digital

Quando um usuário se conecta a um assistente digital por meio de um canal do Microsoft Teams, uma mensagem interna é enviada ao assistente digital para iniciar uma conversa. Por padrão, essa mensagem é a palavra "ajuda", que aciona a intenção do sistema help do assistente digital, o que leva à exibição de uma mensagem de boas-vindas e cartões para as habilidades do assistente digital.

Para desativar esse comportamento, altere a propriedade Internal Welcome Message para um valor diferente de "ajuda". Você pode alterar o valor dessa propriedade no pacote de recursos do assistente digital.

Para alterar a mensagem interna que é definida para o assistente digital quando o usuário se conecta a uma Equipe, canal:

  1. Clique em ícone para abrir o menu lateral para abrir o menu lateral, selecione Desenvolvimento > Assistentes Digitais e abra seu assistente digital.
  2. Na navegação esquerda do assistente digital, clique em Ícone de Pacotes de Recursos, e selecione a guia Configuração.
  3. No campo Filtro, digite internal para restringir rapidamente a lista de chaves de pacote de recursos.
  4. Selecione a chave Outro - internalWelcomeMessage.
  5. Passe o mouse sobre o valor da chave e selecione o ícone Editarque aparece.
  6. Substitua o valor pelo que você gostaria de usar e clique em Atualizar Entrada.
Observação

Se o seu assistente digital estiver em uma versão de plataforma anterior à 21.04, as chaves do pacote de recursos não serão definidas automaticamente para as propriedades de configuração. Nesse caso, talvez você queira apenas atualizar o valor da propriedade na página Definições dos assistentes digitais (que você pode abrir clicando em o ícone Definições).

Ativar a Mensagem de Boas-vindas de uma Habilidade

Por padrão, quando um usuário se conecta diretamente a uma habilidade standalone por meio de um canal do Microsoft Teams, não há nenhuma mensagem de boas-vindas enviada ao usuário. No entanto, se você configurar a propriedade Estado de Boas-vindas da habilidade, a habilidade usará esse estado para exibir uma mensagem quando o usuário se conectar.

  1. Clique em ícone para abrir o menu lateral para abrir o menu lateral, selecione Desenvolvimento > Habilidades e abra sua habilidade.
  2. Na navegação esquerda da habilidade, clique em ícone de Definições e selecione a guia Assistente Digital.
  3. No campo Estado de Boas-vindas, digite o nome do estado em que deseja exibir a mensagem de boas-vindas.
Observação

O uso da propriedade Estado de Boas-vindas dessa forma para uma habilidade standalone só funciona para canais do Microsoft Teams. Para outros canais, essa propriedade é ignorada em habilidades independentes.