Power Automate: trigger quando uma solicitação HTTP é recebida

Por Erick Alves de Moura
Power Automate: trigger quando uma solicitação HTTP é recebida

Hoje um conector premium. O gatilho “Quando uma solicitação HTTP é recebida” é especial porque nos permite ter o Power Automate como um serviço. O que quero dizer com isso é que você pode ter fluxos chamados fora do Power Automate e, como está usando padrões, podemos usar muitas ferramentas para fazer isso.

Então, vamos explorar o gatilho “Quando uma solicitação HTTP é recebida” e ver o que podemos fazer com ele.

Onde encontrá-lo?

Para encontrá-lo, você pode procurar por “Quando uma solicitação HTTP é recebida”. Se parece com isso:

Uso

Para utilizá-lo, temos que definir o JSON Schema. Entro em muitos detalhes no artigo “O que é um esquema JSON”, mas você precisa entender que o gatilho espera que um JSON seja fornecido com todos os parâmetros. JSON pode ser bastante complexo, então recomendo o seguinte. Use o “Usar carga útil de amostra para gerar o esquema” para ajudá-lo a fazer isso.

Aqui estão alguns exemplos para você começar. Nesse caso, forneceremos uma string, um inteiro e um booleano.

{ “parameter1″:”string parameter”, “parameter2”:1, “parameter3”:false }

Copie-o para “Usar carga útil de amostra para gerar esquema”.

Ele irá gerar o seguinte:

{ “type”: “object”, “properties”: { “parameter1”: { “type”: “string” }, “parameter2”: { “type”: “integer” }, “parameter3”: { “type”: “boolean” } }

As propriedades precisam ter o nome que você deseja chamá-las. Por exemplo, chamarei “parâmetro1” quando quiser a string. Mas o valor não precisa fazer sentido. O Power Automate examinará o tipo de valor e não o conteúdo.

Matriz

Vejamos outro. Nesse caso, esperamos vários valores dos itens anteriores. Precisamos fornecer uma matriz com dois ou mais objetos para que o Power Automate saiba que é uma matriz. Aqui está um exemplo:

[ { “parameter1″:”string parameter”, “parameter2”:1, “parameter3”:false }, { “parameter1″:”string parameter”, “parameter2”:1, “parameter3”:false } ]

Nós temos:

{ “type”: “array”, “items”: { “type”: “object”, “properties”: { “parameter1”: { “type”: “string” }, “parameter2”: { “type”: “integer” }, “parameter3”: { “type”: “boolean” } }, “required”: [ “parameter1”, “parameter2”, “parameter3” ] } }

Observe que as propriedades são as mesmas em ambas as linhas da matriz. Se você torná-los diferentes, assim:

[ { “parameter1″:”string parameter”, “parameter2”:1, “parameter3”:false }, { “parameter4″:”string parameter”, “parameter5”:1, “parameter6”:false } ]

Você obterá o seguinte:

{ “type”: “array”, “items”: { “type”: “object”, “properties”: { “parameter1”: { “type”: “string” }, “parameter2”: { “type”: “integer” }, “parameter3”: { “type”: “boolean” }, “parameter4”: { “type”: “string” }, “parameter5”: { “type”: “integer” }, “parameter6”: { “type”: “boolean” } }, “required”: [] } }

Como as propriedades são diferentes, nenhuma delas é necessária.

Acionar o fluxo

Existem várias maneiras de acionar o Flow, inclusive online.

Lembre-se de que a URL do Flow não deve ser pública. Qualquer pessoa com o URL do Flow pode acioná-lo, portanto, mantenha as coisas privadas e seguras.

Para testar, usaremos o aplicativo iOS Shortcuts para mostrar que é possível até no celular. Forneceremos o seguinte JSON:

{ “parameter1″:”string parameter”, “parameter2”:1, “parameter3”:false }

Aqui está o modelo.

Entramos no Power Automate:

Atalhos fazem muito trabalho para nós, então vamos tentar que o Postman tenha uma solicitação “bruta”.

Tudo certo.

Outros pedidos

Se você notar na parte superior do gatilho, verá que ele menciona “POST”.

“POST” é um tipo de pedido, mas existem outros. Não vou entrar em muitos detalhes aqui, mas se você quiser ler mais sobre isso, aqui está um bom artigo que explica tudo com base na especificação.

Fluxo Filho

O Power Automate permite que você use um fluxo com um gatilho “Quando uma solicitação HTTP é recebida” como um fluxo filho. Então, você pode chamá-lo e ele até reconhecerá os parâmetros.

Funciona da mesma forma que o gatilho “Acionar manualmente um fluxo”, mas você precisa incluir no final do fluxo filho uma ação “Responder a um PowerApp ou fluxo” ou uma ação “Resposta” para que o pai saiba quando o filho O fluxo terminou.

Saídas

A trigger retorna as informações que definimos no JSON Schema. Assim, para os exemplos acima, obtemos o seguinte:

{ “headers”: { “Connection”: “keep-alive”, “Accept”: “*/*”, “Accept-Encoding”: “br,gzip,deflate”, “Host”: “prod.westeurope.logic.azure.com:443”, “User-Agent”: “PostmanRuntime/7.28.4”, “Postman-Token”: “2b636af8-62a5-4ff7-b160-cb06ad59f510”, “Content-Length”: “80”, “Content-Type”: “application/json” }, “body”: { “parameter1”: “string parameter”, “parameter2”: 1, “parameter3”: false } }

Como o gatilho “Quando uma solicitação HTTP é recebida” pode aceitar qualquer coisa no formato JSON, precisamos definir o que esperamos com o Schema. Qualquer outra coisa não será tomada porque não é o que precisamos para prosseguir.

Limitações

Para alguns, é um problema não haver autenticação para o Flow. No entanto, se alguém tiver o URL do Flow, poderá executá-lo, pois a Microsoft confia que você não divulgará o URL completo.

Aqui está um exemplo de URL (os valores são aleatórios, é claro).

https://prod-121.westeurope.logic.azure.com:443/workflows/1a0340b17abc499a9a16c1779fe5c749/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig= nyDHvV9Y5PKteCu4xAQVlixGtvXhalZ80Ti3Yz1BF4V5rpqWl8uUYn8VcwRz

Portanto, mantenha seus fluxos privados e seguros.

Recomendações

Aqui estão algumas coisas para manter na mente.

Não gere o esquema.

Não há grande necessidade de gerar o esquema manualmente. É complicado e você pode cometer erros. Em vez disso, sempre forneça um JSON e deixe o Power Automate gerar o esquema. É muito mais fácil gerar um JSON com o que você precisa.

Nomeie-o corretamente

O nome é super importante, pois podemos obter o gatilho de qualquer lugar e com qualquer coisa. Sempre construa o nome para que outras pessoas possam entender o que você está usando sem abrir a ação e verificar os detalhes.

Adicione sempre um comentário.

Adicionar um comentário também ajudará a evitar erros. Indique suas expectativas, por que o Flow deve ser acionado e os dados usados. Novamente, é essencial habilitar uma depuração mais rápida quando algo der errado.

Entre em contato ainda hoje e veja como nossos especialistas Power Automate podem ajudar o seu negócio.

Ver mais artigos

Entre em Contato

Vamos juntos transformar sua dor
em solução!

#moveFast