Compartilhar via


Criar e enviar mensagens

Para criar e enviar mensagens acionáveis, utilize um Webhook recebido ou um conector do Microsoft 365. No entanto, as mensagens acionáveis são acessíveis apenas aos utilizadores com uma licença do Exchange Online.

Criar mensagens acionáveis

As mensagens acionáveis incluem seis botões visíveis no cartão. Cada botão é definido na potentialAction propriedade da mensagem através ActionCard de ações, cada um com um tipo de entrada, um campo de texto, um seletor de datas ou uma lista de escolha múltipla. Cada ação ActionCard tem uma ação associada, por exemplo HttpPOST.

Os cartões de conector dão suporte às seguintes ações:

  • ActionCard: Apresenta um ou mais tipos de entrada e ações associadas.
  • HttpPOST: Envia uma solicitação POST a uma URL.
  • OpenUri: abre o URI num browser ou aplicação separado. Opcionalmente, destina-se a DIFERENTES URIs com base em sistemas operativos.

A ação ActionCard oferece suporte a três tipos de entrada:

  • TextInput: Um campo de texto de linha única ou de várias linhas com um limite de comprimento opcional.
  • DateInput: Um seletor de data com um seletor de tempo opcional.
  • MultichoiceInput: Uma lista enumerada de opções que oferece uma seleção única ou múltipla.

MultichoiceInput oferece suporte a uma propriedade style que controla se a lista já aparecerá totalmente expandida. O valor padrão de style depende do valor de isMultiSelect como segue:

isMultiSelect predefinição style
false ou não especificado compact
true expanded

Para exibir a lista de seleção múltipla no estilo compacto, especifique "isMultiSelect": true e "style": true.

Para obter mais informações sobre ações de cartão do conector, veja Ações.

Observação

  • Especificar compact para a propriedade style no Microsoft Teams é o mesmo que especificar normal para a propriedade style no Microsoft Outlook.
  • Para a ação HttpPOST, o token do portador é incluído com as solicitações. Este token inclui a identidade do Microsoft Entra do utilizador do Microsoft 365 que tomou a ação.

Enviar uma mensagem através do Webhook ou conector recebido para Grupos do Microsoft 365

Para enviar uma mensagem através do webhook ou conector recebido dos Grupos do Microsoft 365, publique um payload JSON no URL do webhook. Este payload tem de estar sob a forma de um cartão de conector para os Grupos do Microsoft 365.

Também é possível usar esse JSON para criar cartões contendo entradas avançadas, como entrada de texto, seleção múltipla ou escolha de data e hora. O código que gera o cartão e as postagens na URL do Webhook pode ser executado em qualquer serviço hospedado. Estes cartões são definidos como parte de mensagens acionáveis e também são suportados em cartões utilizados em bots do Teams e extensões de mensagens.

Exemplo de mensagem do conector

Um exemplo de mensagem de conector é o seguinte:

{
    "@type": "MessageCard",
    "@context": "http://schema.org/extensions",
    "themeColor": "0076D7",
    "summary": "Larry Bryant created a new task",
    "sections": [{
        "activityTitle": "Larry Bryant created a new task",
        "activitySubtitle": "On Project Tango",
        "activityImage": "https://adaptivecards.io/content/cats/3.png",
        "facts": [{
            "name": "Assigned to",
            "value": "Unassigned"
        }, {
            "name": "Due date",
            "value": "Mon May 01 2017 17:07:18 GMT-0700 (Pacific Daylight Time)"
        }, {
            "name": "Status",
            "value": "Not started"
        }],
        "markdown": true
    }],
    "potentialAction": [{
        "@type": "ActionCard",
        "name": "Add a comment",
        "inputs": [{
            "@type": "TextInput",
            "id": "comment",
            "isMultiline": false,
            "title": "Add a comment here for this task"
        }],
        "actions": [{
            "@type": "HttpPOST",
            "name": "Add comment",
            "target": "https://learn.microsoft.com/outlook/actionable-messages"
        }]
    }, {
        "@type": "ActionCard",
        "name": "Set due date",
        "inputs": [{
            "@type": "DateInput",
            "id": "dueDate",
            "title": "Enter a due date for this task"
        }],
        "actions": [{
            "@type": "HttpPOST",
            "name": "Save",
            "target": "https://learn.microsoft.com/outlook/actionable-messages"
        }]
    }, {
        "@type": "OpenUri",
        "name": "Learn More",
        "targets": [{
            "os": "default",
            "uri": "https://learn.microsoft.com/outlook/actionable-messages"
        }]
    }, {
        "@type": "ActionCard",
        "name": "Change status",
        "inputs": [{
            "@type": "MultichoiceInput",
            "id": "list",
            "title": "Select a status",
            "isMultiSelect": "false",
            "choices": [{
                "display": "In Progress",
                "value": "1"
            }, {
                "display": "Active",
                "value": "2"
            }, {
                "display": "Closed",
                "value": "3"
            }]
        }],
        "actions": [{
            "@type": "HttpPOST",
            "name": "Save",
            "target": "https://learn.microsoft.com/outlook/actionable-messages"
        }]
    }]
}

A imagem seguinte é um exemplo do cartão de mensagem do conector num canal:

Captura de ecrã a mostrar um exemplo de um cartão de conector num canal.

Enviar mensagens usando cURL e PowerShell

Para postar uma mensagem no webhook com cURL, siga estas etapas:

  1. Instale o cURL do site do cURL.

  2. Na linha de comando, insira o seguinte comando cURL:

    // on macOS or Linux
    curl -H 'Content-Type: application/json' -d '{"text": "Hello World"}' <YOUR WEBHOOK URL>
    
    // on Windows
    curl.exe -H "Content-Type:application/json" -d "{'text':'Hello World'}" <YOUR WEBHOOK URL>
    

    Observação

    Se o POST tiver êxito, você verá uma saída 1 simples por curl.

  3. Verifique o cliente do Teams para o novo cartão postado.

Envie Cartões Adaptáveis usando um Webhook de Entrada

Observação

Para enviar Cartões Ajustáveis com texto ou uma imagem codificada com Base64 através de um Webhook recebido, siga estes passos:

  1. Configure um webhook personalizado no Teams.
  2. Crie um arquivo JSON de Cartão Adaptável usando o seguinte código:
    {
       "type":"message",
       "attachments":[
          {
             "contentType":"application/vnd.microsoft.card.adaptive",
             "contentUrl":null,
             "content":{
                "$schema":"http://adaptivecards.io/schemas/adaptive-card.json",
                "type":"AdaptiveCard",
                "version":"1.2",
                "body":[
                    {
                    "type": "TextBlock",
                    "text": "For Samples and Templates, see [https://adaptivecards.io/samples](https://adaptivecards.io/samples)"
                    }
                ]
             }
          }
       ]
    }

As propriedades do arquivo JSON do Cartão Adaptável são as seguintes:

  • O campo "type" deve ser "message".
  • A matriz "attachments" contém um conjunto de objetos de cartão.
  • O campo "contentType" deve ser definido para o tipo de Cartão adaptável.
  • O objeto "content" é o cartão formatado em JSON.
  1. Teste seu Cartão Adaptável com o Postman:

    1. Teste o Cartão Adaptável usando Postman para enviar uma solicitação POST para a URL, criada para configurar o Webhook de Entrada.
    2. Cole seu arquivo JSON no corpo da solicitação e visualize sua mensagem de cartão adaptável no Teams.

Dica

Use o Cartão Adaptável exemplos de código e formatos para testar o corpo do pedido da PUBLICAÇÃO.

Limitação de taxa para conectores

Os limites de taxa de aplicativos controlam o tráfego que um conector ou um Webhook de Entrada tem permissão para gerar em um canal. O Teams monitoriza os pedidos com uma janela de taxa fixa e um contador incremental medidos em segundos. Se mais de quatro solicitações forem feitas em um segundo, a conexão do cliente será limitada até que a janela seja atualizada durante a taxa fixa.

Limites de transações por segundo

A tabela a seguir fornece os detalhes da transação baseada em tempo:

Tempo em segundos Máximo de solicitações permitidas
1 4
30 60
3600 100
7200 150
86400 1800

Observação

Uma lógica de repetição com retirada exponencial como abaixo reduziria a limitação da taxa nos casos em que as solicitações excederem os limites em um segundo. Referir Respostas HTTP 429 para evitar atingir os limites da taxa.

// Please note that response body needs to be extracted and read 
// as Connectors do not throw 429s
try
{
    // Perform Connector POST operation     
    var httpResponseMessage = await _client.PostAsync(IncomingWebhookUrl, new StringContent(content));
    // Read response content
    var responseContent = await httpResponseMessage.Content.ReadAsStringAsync();
    if (responseContent.Contains("Microsoft Teams endpoint returned HTTP error 429")) 
    {
        // initiate retry logic
    }
}

Esses limites existem para reduzir o spam em um canal por um conector e garantem uma experiência ideal para os usuários finais.

Confira também