Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Webhooks são retornos de chamada HTTP simples usados para fornecer notificações de eventos. Os Aplicativos Lógicos do Azure e Power Automate ambos permitem que você use webhooks como gatilhos. Uma aplicação lógica ou fluxo reconhece este acionador e efetua uma ação sempre que ele é acionado. Este tutorial demonstra como utilizar um webhook como acionador.
Nota
Utilizaremos o GitHub como exemplo de um serviço que pode enviar notificações através de webhooks, embora as técnicas aqui demonstradas possam ser expandidas para qualquer serviço que utilize webhooks.
Pré-requisitos
- Uma das seguintes subscrições:
- Azure, se estiver a utilizar Aplicações Lógicas
- Power Automate
- Experiência básica na criação de aplicativos ou fluxos lógicos e conectores personalizados....
- Se você estiver a usar Aplicativos Lógicos, primeiro crie um conector personalizado de Aplicativos Lógicos do Azure.
- Compreensão básica dos webhooks.
- Compreensão básica da OpenAPI especificação (anteriormente conhecida como Swagger).
- Uma conta do GitHub .
- A definição OpenAPI de exemplo para este tutorial.
A definição de OpenAPI
Webhooks são implementados em Aplicativos Lógicos e Power Automate como parte de um conector personalizado, portanto, você precisa fornecer uma OpenAPI definição que defina a forma do webhook. Se você quiser criar um gatilho, mas não tiver uma OpenAPI definição, poderá usar a interface do utilizador de gatilhos no assistente de conector personalizado para definir gatilhos de webhook.
A definição de OpenAPI contém três partes essenciais para fazer com que o webhook funcione:
- Criar o webhook
- Definir o pedido de hook recebido a partir da API (neste caso, o GitHub)
- Eliminar o webhook
Criar o webhook
O webhook é criado no lado do GitHub por um HTTP POST para /repos/{owner}/{repo}/hooks. Quando é criada uma nova aplicação lógica ou fluxo, publica para este URL utilizando o acionador definido na definição de OpenAPI. Também é postado no URL, se o acionador for modificado. A seguir, a post propriedade contém o esquema da solicitação que é postada no GitHub.
"/repos/{owner}/{repo}/hooks": {
"x-ms-notification-content": {
"description": "Details for Webhook",
"schema": {
"$ref": "#/definitions/WebhookPushResponse"
}
},
"post": {
"description": "Creates a Github webhook",
"summary": "Triggers when a PUSH event occurs",
"operationId": "webhook-trigger",
"x-ms-trigger": "single",
"parameters": [
{
"name": "owner",
"in": "path",
"description": "Name of the owner of targeted repository",
"required": true,
"type": "string"
},
{
"name": "repo",
"in": "path",
"description": "Name of the repository",
"required": true,
"type": "string"
},
{
"name": "Request body of webhook",
"in": "body",
"description": "This is the request body of the Webhook",
"schema": {
"$ref": "#/definitions/WebhookRequestBody"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/WebhookCreationResponse"
}
}
}
}
},
Importante
A "x-ms-trigger": "single" propriedade é uma extensão de esquema que informa Aplicativos lógicos e Power Automate para exibir esse webhook na lista de gatilhos disponíveis no designer, portanto, certifique-se de incluí-lo.
Definir o pedido de hook recebido a partir da API
A forma da solicitação de gancho de entrada (a notificação do GitHub para Aplicativos Lógicos ou Power Automate) é definida na propriedade personalizada x-ms-notification-content , conforme mostrado no exemplo anterior. Não é necessário ter todo o conteúdo do pedido, apenas as partes que pretende utilizar no aplicação lógica ou fluxo.
Eliminar o webhook
A OpenAPI definição deve incluir uma definição de como excluir o webhook. Se atualizar o acionador e se eliminar a aplicação lógica ou o fluxo, o Logic Apps e o Power Automate tentam eliminar o webhook.
"/repos/{owner}/{repo}/hooks/{hook_Id}": {
"delete": {
"description": "Deletes a Github webhook",
"operationId": "DeleteTrigger",
"parameters": [
{
"name": "owner",
"in": "path",
"description": "Name of the owner of targeted repository",
"required": true,
"type": "string"
},
{
"name": "repo",
"in": "path",
"description": "Name of the repository",
"required": true,
"type": "string"
},
{
"name": "hook_Id",
"in": "path",
"description": "ID of the Hook being deleted",
"required": true,
"type": "string"
}
]
}
},
Não está incluído nenhum cabeçalho com instruções para a chamada de eliminar o webhook. A mesma ligação utilizada no conector também é utilizada para a chamada de excluir webhook.
Importante
Para Aplicativos Lógicos ou Power Automate para excluir um webhook, a API deve incluir um Location cabeçalho HTTP na resposta 201 no momento em que o webhook é criado. O Location cabeçalho deve conter o caminho para o webhook que é usado com o HTTP DELETE. Por exemplo, a Location resposta incluída no GitHub segue este formato: https://api.github.com/repos/<user name>/<repo name>/hooks/<hook ID>.
Ative a autenticação no GitHub
Geralmente, a API que envia o pedido do webhook para o Logic Apps ou o Power Automate utiliza algum tipo de autenticação e o GitHub não é exceção. O GitHub suporta vários tipos de autenticação; usamos os tokens de acesso pessoal do GitHub para este tutorial.
Navegue até o GitHub e faça login, se ainda não o fez.
No canto superior direito, selecione sua foto de perfil e, no menu, escolha Configurações.
No menu à esquerda, escolha Configurações do desenvolvedor e, em seguida, escolhaTokens de acesso pessoal.
Escolha o botão Gerar novo token e, em seguida, confirme sua senha, se solicitado.
Na caixa Descrição do token , insira uma descrição.
Marque a caixa de seleção admin:repo_hook .
Escolha o botão Gerar token .
Tome nota do novo token.
Importante
Não poderá aceder a este token novamente. Deve copiá-lo e colá-lo num lugar para utilizar mais tarde no tutorial.
Importar a definição de OpenAPI
Comece importando a OpenAPI definição para Aplicativos Lógicos ou para Power Automate.
Importar a definição de OpenAPI para Logic Apps
Vá para o portal do Azure e abra o conector de Aplicativos Lógicos que você criou anteriormente em Criar um conector personalizado de Aplicativos Lógicos do Azure.
No menu do conector, escolha Logic Apps Connector (Conector de aplicativos lógicos) e, em seguida, escolha Editar.
Em Geral, escolha Carregar um OpenAPI arquivo e navegue até o OpenAPI arquivo que você baixou.
Importar a definição de OpenAPI para o Power Automate
Vá para flow.microsoft.com.
No canto superior direito, escolha o ícone de engrenagem e, em seguida, escolha Conectores personalizados.
Escolha Create custom connector e, em seguida, Import a Postman collection.
Insira um nome para o conector personalizado, navegue até o OpenAPI arquivo que você baixou e escolha Conectar.
Parâmetro valor Título do conector personalizado "GitHubDemo"
Concluir a criação do conector personalizado
Na página Geral , escolha Continuar.
Na página Segurança , em Tipo de autenticação, selecioneAutenticação básica.
Na secção Autenticação básica, para os campos de rótulo, digite o texto Nome de utilizador e Senha. Estas são apenas etiquetas que serão apresentadas quando o acionador for utilizado numa aplicação lógica ou num fluxo.
Na parte superior do assistente, verifique se o nome está definido como "GitHubDemo" e escolha Criar conector.
Agora você está pronto para usar o gatilho em um aplicativo lógico ou fluxo, ou pode ler sobre como criar gatilhos a partir da interface do utilizador.
Criar acionadores de webhook a partir da UI
Nesta secção, mostramos-lhe como criar um acionador na IU sem ter quaisquer definições de acionador na sua definição de OpenAPI. Comece com uma definição de OpenAPI de linha base ou comece do zero no assistente de conector personalizado.
Na página Geral, certifique-se de especificar uma descrição e um URL.
Parâmetro valor Descrição "O GitHub é um repositório de código de origem social." URL "api.github.com" Na página Segurança , configure a autenticação básica como fez na secção anterior.
Na página Definição , escolha + Novo gatilho e preencha a descrição do gatilho. Neste exemplo, vai criar um acionador que é acionado quando é efetuado um pedido de solicitação a um repositório.
Parâmetro valor Resumo "É acionado quando um pedido de receção é efetuado para um repositório selecionado" Descrição "É acionado quando um pedido de receção é efetuado para um repositório selecionado" ID da operação "webhook-PR-trigger" Visibilidade "nenhum" (para mais informações, ver abaixo) Tipo de gatilho "Webhook" A propriedade Visibility para operações e parâmetros em um aplicativo lógico ou fluxo tem as seguintes opções:
- nenhum: exibido normalmente no aplicativo lógico ou fluxo
- Avançado: oculto sob um menu adicional
- interna: oculta do utilizador
- Importante: Sempre mostrado ao utilizador primeiro
A área Solicitação exibe informações com base na solicitação HTTP para a ação. Escolha Importar da amostra.
Defina a solicitação para o gatilho do webhook e escolha Importar. Fornecemos um exemplo que deve ser importado (abaixo da imagem). Para obter mais informações, consulte a referência da API doGitHub. Os Aplicativos Lógicos e o Power Automate adicionam automaticamente cabeçalhos padrão
content-typee de segurança, para que você não precise defini-los ao importar de uma amostra.
Parâmetro valor Verbo "PUBLICAR" URL "https://api.github.com/repos/{owner}/{repo}/hooks" Corpo Ver abaixo { "name": "web", "active": true, "events": [ "pull_request" ], "config": { "url": "http://example.com/webhook" } }A área Resposta exibe informações com base na resposta HTTP para a ação. Escolha Adicionar resposta padrão.
Defina a resposta para o gatilho do webhook e escolha Importar. Fornecemos um exemplo que deve ser importado. Para obter mais informações, consulte a referência da API doGitHub.
{ "action": "opened", "number": 1, "pull_request": { "html_url": "https://github.com/baxterthehacker/public-repo/pull/1", "state": "open", "locked": false, "title": "Update the README with new information", "user": { "login": "baxterthehacker", "type": "User" } } }Na área Configuração do gatilho , selecione o parâmetro que deve receber o valor da URL de retorno de chamada do GitHub. Esta é a
urlpropriedade noconfigobjeto.
Na parte superior do assistente, insira um nome e escolha Criar conector.
Utilizar o webhook como acionador
Agora que já tem tudo configurado, pode utilizar o webhook numa aplicação lógica ou num fluxo. Em seguida, crie um fluxo que envie uma notificação push para a aplicação móvel do Power Automate sempre que o repositório do GitHub receber um git push.
Em flow.microsoft.com, na parte superior da página, escolha Meus fluxos.
Escolha Criar em branco e, na página seguinte, escolha Pesquisar centenas de conectores e gatilhos.
No designer do Power Automate, procure o conector personalizado registado anteriormente.
Selecione o item na lista para o utilizar como acionador.
Como é a primeira vez que utiliza este conector personalizado, tem de ligar ao mesmo. Insira as informações de conexão e escolha Criar.
Parâmetro valor Nome da conexão Um nome descritivo Nome de utilizador O seu nome de utilizador no GitHub Palavra-passe O token de acesso pessoal que criou anteriormente Introduza os detalhes do repositório que quer monitorizar. Você pode reconhecer os campos do objeto WebhookRequestBody no OpenAPI arquivo.
Parâmetro valor proprietário O proprietário do repositório a monitorizar Repositório O repositório a monitorizar Importante
Deve utilizar um repositório para o qual a sua conta tenha direitos. A forma mais fácil de fazê-lo será se utilizar o seu próprio repositório.
Escolha + Nova etapa e, em seguida, escolha Adicionar uma ação.
Procure e selecione a ação Notificação por push.
Insira algum texto no campo Texto e nos outros campos, usando valores da caixa de diálogo de conteúdo dinâmico. Observe que esses valores vêm do objeto WebhookPushResponse no OpenAPI arquivo.
Parâmetro valor Nome da conexão Um nome descritivo Nome de utilizador O seu nome de utilizador no GitHub Palavra-passe O token de acesso pessoal que criou anteriormente Na parte superior da página, dê um nome ao fluxo e escolha Criar fluxo.
Verificação e resolução de problemas
Para verificar se tudo está configurado corretamente, escolha Meus fluxos e, em seguida, escolha o ícone de informações ao lado do novo fluxo para visualizar o histórico de execução:
Já deverá ver, pelo menos, uma execução "Com êxito" desde a criação do webhook. Isto indica que o webhook foi criado com êxito no lado do GitHub.
Se a execução falhar, pode explorar os detalhes de execução para ver o motivo da falha. Se a falha se deveu a uma resposta "404 Não Encontrado", é provável que a sua conta do GitHub não tenha as permissões corretas para criar um webhook no repositório que utilizou.
Resumo
Se estiver tudo configurado corretamente, irá agora receber notificações push na aplicação para dispositivos móveis do Power Automate sempre que ocorrer um git push no repositório do GitHub que selecionou. Através do processo acima, pode utilizar qualquer serviço com capacidade de webhook como acionador nos seus fluxos.
Passos seguintes
- Criar um conector personalizado para uma API da Web
- Autentique sua API e conector com Microsoft Entra ID
Enviar comentários
Apreciamos os comentários sobre problemas com a nossa plataforma de conectores ou novas ideias de funcionalidades. Para fornecer comentários, vá para Enviar problemas ou obter ajuda com conectores e selecione seu tipo de feedback.