Criar e enviar mensagens
Você pode criar mensagens acionáveis e enviá-la por meio do Webhook ou do conector de entrada para Grupos do Microsoft 365.
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 usando ActionCard
ações, cada uma com um tipo de entrada, um campo de texto, um seletor de datas ou uma lista de várias opções. 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 em um navegador ou aplicativo separado. Opcionalmente, visa URIs diferentes com base em sistemas operacionais.
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 |
Padrã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 propriedadestyle
no Microsoft Teams é o mesmo que especificarnormal
para a propriedadestyle
no Microsoft Outlook. - Para a ação HttpPOST, o token do portador é incluído com as solicitações. Esse token inclui a identidade Microsoft Azure Active Directory (Azure AD) do usuário do Microsoft 365 que tomou a ação.
Enviar uma mensagem por meio do Webhook ou do conector de entrada para Grupos do Microsoft 365
Para enviar uma mensagem por meio de seu Webhook ou conector de entrada para Grupos do Microsoft 365, poste uma carga JSON na URL do webhook. Essa carga deve estar na forma de um conector cartão para 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. Esses cartões são definidos como parte de mensagens acionáveis e também têm suporte em cartões usados 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://teamsnodesample.azurewebsites.net/static/img/image5.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"
}]
}]
}
Essa mensagem produz o seguinte cartão no canal:
Enviar mensagens usando cURL e PowerShell
Para postar uma mensagem no webhook com cURL, siga estas etapas:
Instale o cURL do site do cURL.
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
.Verifique o cliente do Teams para o novo cartão postado.
Envie Cartões Adaptáveis usando um Webhook de Entrada
Observação
- Todos os elementos de esquema dos Cartões Adaptáveis nativos, exceto
Action.Submit
, são totalmente suportados. - As ações suportadas são Action.OpenURL, Action.ShowCard, e Action.ToggleVisibility.
Para enviar Cartões Adaptáveis por meio de um Webhook de Entrada, siga estas etapas:
Configure um webhook personalizado no Teams.
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.
- O campo
Teste seu Cartão Adaptável com o Postman:
- Teste o Cartão Adaptável usando Postman para enviar uma solicitação POST para a URL, criada para configurar o Webhook de Entrada.
- 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 acompanha as solicitações por meio de uma janela de taxa fixa e de um contador incremental medido 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.