Definir comandos de ação de extensão de mensagem

Antes de criar o comando de ação, você deve decidir os seguintes fatores:

  1. De onde o comando de ação pode ser disparado?
  2. Como a caixa de diálogo (referida como módulo de tarefa no TeamsJS v1.x) é criada?
  3. A mensagem final ou o card é enviado para o canal de um bot ou a mensagem ou o card é inserido na área de redação de mensagem para o usuário enviar?

Observação

Os agentes fornecem uma experiência mais flexível, inteligente e pronta para o futuro que permite um raciocínio mais avançado, um desenvolvimento mais simples e um melhor alinhamento com o Teams em evolução e a plataforma Microsoft 365. Recomendamos que você explore e crie agentes.

Para obter mais informações, confira Criar agentes declarativos e Criar agentes no Teams.

Se você tiver uma extensão de mensagem baseada em bot existente, também poderá estendê-la como um agente .

Selecionar locais de invocação de comando de ação

Primeiro, você deve decidir o local de onde o comando de ação deve ser invocado. Quando você especifica a propriedade no manifesto do aplicativo (anteriormente chamado de manifesto context do aplicativo do Teams), seu comando pode ser invocado de um ou mais dos seguintes locais:

  • Área redigir mensagem: os botões na parte inferior da área de mensagem de redação.

    Comandos context = compose

  • Caixa de comando: Usando / na caixa de comando. Por exemplo, /nome-do-seu-aplicativo. Se você estiver usando o Teams clássico, o comando de ação será invocado na @mentioning caixa de comando. Por exemplo, @your-app-name.

    Comandos context = commandBox

    Observação

    Se uma extensão de mensagem for invocada na caixa de comando, você não poderá responder com uma mensagem de bot inserida diretamente na conversa.

  • Mensagem: Diretamente de uma mensagem existente por meio do menu de estouro ... em uma mensagem.

    Comandos context = message

    Observação

    • A invocação inicial para o bot inclui um objeto JSON que contém a mensagem da qual ele foi invocado. Você pode processar a mensagem antes de apresentar uma caixa de diálogo.

    • Quando o usuário seleciona reticências ..., um menu de estouro é exibido. No entanto, por padrão, as ações de mensagem para aplicativos criados por você para sua organização ou aplicativos de terceiros não são exibidas. Depois que o usuário selecionar Mais ações, ele poderá ver as ações da mensagem e selecionar a opção necessária. A respectiva ação de mensagem é exibida no menu de estouro. O menu estouro exibe as três ações de mensagem mais recentes. Não é possível fixar a ação da mensagem a ser exibida.

A imagem a seguir exibe os locais dos quais o comando de ação é invocado:

Locais de invocação de comando de ação

Selecione como criar seu diálogo

Além de selecionar de onde o comando pode ser invocado, você também deve selecionar como preencher o formulário na caixa de diálogo para seus usuários. Você tem as três opções a seguir para criar o formulário que é renderizado dentro da caixa de diálogo:

  • Lista estática de parâmetros: Esse é o método mais simples. Você pode definir uma lista de parâmetros no manifesto do aplicativo que o cliente do Teams renderiza, mas não pode controlar a formatação nesse caso.
  • Cartão Adaptável: você pode optar por usar um Cartão Adaptável, que fornece maior controle sobre a interface do usuário, mas ainda limita os controles disponíveis e as opções de formatação.
  • Exibição da Web incorporada: você pode optar por incorporar uma exibição da Web personalizada na caixa de diálogo para ter um controle completo sobre a interface do usuário e os controles.

Se você optar por criar a caixa de diálogo com uma lista estática de parâmetros e quando o usuário enviar a caixa de diálogo, a extensão da mensagem será chamada. Ao usar um modo de exibição da Web inserido ou um Cartão Adaptável, sua extensão de mensagem deve lidar com um evento de invocação inicial do usuário, criar a caixa de diálogo e devolvê-la ao cliente.

Selecione como a mensagem final é enviada

Na maioria dos casos, o comando de ação resulta em um cartão inserido na caixa de mensagem de redação. O usuário pode enviá-lo para o canal ou chat. Nesse caso, a mensagem vem do usuário e o bot não pode mais editar ou atualizar o card.

Se a extensão da mensagem for invocada da caixa de redação ou diretamente de uma mensagem, o serviço Web poderá inserir a resposta final diretamente no canal ou chat. Nesse caso, o Cartão Adaptável vem do bot, o bot o atualiza e responde ao thread de conversa, se necessário. Você deve adicionar o bot objeto ao manifesto do aplicativo usando a mesma ID e definindo os escopos apropriados.

Criar comando de ação usando o portal do desenvolvedor

Você pode criar um comando de ação usando o Microsoft 365 Agents Toolkit (anteriormente conhecido como Teams Toolkit) e o Portal do desenvolvedor para Teams.

Para criar uma extensão de mensagem baseada em ação usando o Agents Toolkit, siga estas etapas:

  1. Abra o Visual Studio Code.
  2. No painel esquerdo, selecione Microsoft 365 Agents Toolkit.
  3. Selecione Criar um novo agente/aplicativo>do aplicativo do Teams.
  4. Selecione a Extensão de Mensagem.
  5. Selecione Coletar dos dados de entrada e do processo.
  6. Selecione uma linguagem de programação.
  7. Selecione a pasta padrão.
  8. Insira o nome do seu aplicativo e selecione Enter.

O Agents Toolkit cria um scaffolding em seu projeto e cria uma extensão de mensagem de ação.

Trechos de código

O código a seguir fornece um exemplo de baseado em ação para extensões de mensagem:

protected override Task<MessagingExtensionActionResponse> OnTeamsMessagingExtensionFetchTaskAsync(ITurnContext<IInvokeActivity> turnContext, MessagingExtensionAction action, CancellationToken cancellationToken)
        {
            // Handle different actions using switch.
            switch (action.CommandId)
            {
                case "HTML":
                    return new MessagingExtensionActionResponse
                    {
                        Task = new TaskModuleContinueResponse
                        {
                            Value = new TaskModuleTaskInfo
                            {
                                Height = 200,
                                Width = 400,
                                Title = "Task Module HTML Page",
                                Url = baseUrl + "/htmlpage.html",
                            },
                        },
                    };
                default:
                    string memberName = "";
                    var member = await TeamsInfo.GetMemberAsync(turnContext, turnContext.Activity.From.Id, cancellationToken);
                    memberName = member.Name;
                    return new MessagingExtensionActionResponse
                    {
                        Task = new TaskModuleContinueResponse
                        {
                            Value = new TaskModuleTaskInfo
                            {
                                Card = <<AdaptiveAction card json>>,
                                Height = 200,
                                Width = 400,
                                Title = $"Welcome {memberName}",
                            },
                        },
                    };
            }
        }

Exemplo de código

Nome do exemplo Descrição .NET Node.js Manifesto
Ação de extensão de mensagem do Teams Este exemplo demonstra como criar extensões de mensagens baseadas em ações para o Microsoft Teams, permitindo que os usuários gerem conteúdo de forma interativa. Ele apresenta bots, extensões de mensagem e integração perfeita com entradas do usuário para funcionalidade aprimorada. View View View
Visualização da ação de extensão de mensagem Este aplicativo de exemplo ilustra como utilizar visualizações de ação em extensões de mensagem do Teams, permitindo que os usuários criem cartões a partir da entrada em uma caixa de diálogo. Ele mostra interações de bot que aprimoram o envolvimento do usuário atribuindo mensagens aos usuários. View View View

Guias passo a passo

Siga o guia passo a passo para criar uma extensão de mensagem baseada em ação do Teams.

Próxima etapa

Se você estiver usando um Cartão Adaptável ou um modo de exibição da Web inserido sem um taskInfo objeto, a próxima etapa será:

Se você estiver usando os parâmetros ou um modo de exibição da Web inserido com um taskInfo objeto, o próximo passo é:

Confira também