Criar e enviar mensagens
Importante
Os Conectores do Microsoft 365 (anteriormente denominados conectores Office 365) estão prestes a descontinuar e a criação de novos Conectores do Microsoft 365 será bloqueada em breve. Para obter mais informações sobre a agenda e como a aplicação Fluxos de Trabalho fornece uma experiência mais flexível e segura, veja Descontinuação dos conectores do Microsoft 365 no Microsoft Teams.
Como pode criar um webhook no Teams?
Para publicar automaticamente num chat ou canal quando um pedido de webhook é recebido, utilize os modelos de fluxo de trabalho predefinidos ou crie um fluxo de trabalho do zero com o acionador Quando um pedido de webhook do Teams é recebido . Para obter mais informações, consulte Publicar um fluxo de trabalho quando um pedido de webhook é recebido no Microsoft Teams..
Para obter mais informações sobre o acionador Quando um pedido de webhook do Teams é recebido , consulte Microsoft Teams – Webhook.
Se já tiver criado Office 365 Conectores:
Criar um conector do Power Automate: o Power Automate melhora as aplicações de Fluxos de Trabalho amplamente utilizadas no Teams. É a abordagem dimensionável e segura para transmitir dados através de programação para dentro e para fora do Teams. Se adotar este método, pode criar modelos de fluxo de trabalho para publicar alertas do seu produto em canais do Teams. Esta abordagem simplifica a adoção pelo utilizador do novo método. Para obter mais informações, veja Power Automate para programadores empresariais, ISVs e parceiros.
Atualizar a sua aplicação Teams: pode melhorar a sua aplicação teams atual. Por exemplo, pode permitir que os utilizadores configurem mensagens proativas com base em eventos de acionador no seu sistema. Para obter mais informações, veja como os bots podem publicar em canais através de mensagens proativas.
Problemas conhecidos
- A aplicação de fluxos de trabalho não pode publicar em canais privados como um bot de fluxo. No entanto, pode publicar em nome de um utilizador.
- Os fluxos de trabalho suportam apenas Cartões Ajustáveis. Não suporta a mensagem mais antiga card formato que os Conectores Office 365 utilizam. O suporte para a utilização de mensagens card formato em Fluxos de Trabalho fica disponível a partir de meados de outubro. Para obter mais informações, veja como converter mensagens de conector card formato em Cartão Ajustável.
- Os fluxos de trabalho não oferecem conectores de terceiros, como o DataDog e o Jenkins.
- Os fluxos de trabalho só podem ser criados no seu ambiente predefinido.
Limites
Os fluxos de trabalho estão ligados apenas a utilizadores específicos (referidos como proprietários do fluxo de trabalho) e não a uma equipa ou canal do Teams. Os fluxos de trabalho podem tornar-se fluxos órfãos na ausência de um proprietário se não forem atribuídos coproprietários. Para manter a continuidade no processo de negócio automatizado pelo fluxo, os administradores podem adicionar um ou mais coproprietários e conceder-lhes controlo total sobre o fluxo de trabalho. Também podem adicionar autenticação para ligações, se existirem, e ativar o fluxo se este tiver sido desativado. Para obter mais informações, veja Gerir fluxos órfãos.
Para criar e enviar mensagens acionáveis, utilize um Webhook recebido ou um conector do Microsoft 365. No entanto, as mensagens acionáveis só são acessíveis aos utilizadores com uma licença de 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 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. Este token inclui a identidade 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 para Grupos do Microsoft 365, publique um payload JSON no URL do webhook. Este payload tem de estar sob a forma de um conector card 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. 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 da mensagem do conector card num 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 Ajustáveis com texto ou uma imagem codificada com Base64 através de um Webhook recebido, siga estes passos:
- 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.
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 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.