Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I webhook sono semplici callback HTTP che forniscono notifiche degli eventi quando si verifica qualcosa in un servizio Web. In App per la logica di Azure e Power Automate è possibile usare webhook come trigger. Un'app per la logica o un flusso ascolta questo trigger ed esegue un'azione ogni volta che il trigger si attiva. Questa esercitazione illustra come usare un webhook come trigger tramite un connettore personalizzato definito con una specifica OpenAPI.
Nota
Questo articolo usa GitHub come esempio di un servizio che può inviare notifiche tramite webhook, ma è possibile estendere le tecniche illustrate qui a qualsiasi servizio che consenta webhook.
Prerequisiti
- Uno degli abbonamenti seguenti:
- Azure, se usi Logic Apps
- Power Automate
- Esperienza di base per la creazione di app per la logica o flussi cloud e creazione di connettori personalizzati da definizioni OpenAPI.
- Se usi Logic Apps, prima crea un connettore personalizzato di App per la logica di Azure.
- Conoscenza di base dei webhook.
- Conoscenza di base della specifica OpenAPI (precedentemente nota come Swagger).
- Un account GitHub.
- La definizione OpenAPI di esempio per questa esercitazione. Se non è già disponibile, scaricarlo da usare nei passaggi che seguono. In caso contrario, è necessario creare una definizione OpenAPI personalizzata per il webhook.
Abilitare l'autenticazione in GitHub
Un'API di un servizio Web che invia una richiesta webhook a Logic Apps o Power Automate in genere usa una forma di autenticazione, e GitHub non fa eccezione. GitHub supporta diversi tipi di autenticazione. Questa esercitazione usa i token di accesso personali a granularità fine di GitHub.
Passare a GitHub e accedere se non è già stato fatto.
In alto a destra selezionare l'immagine del profilo e quindi, nel menu, selezionare Impostazioni.
Nel menu a sinistra selezionare Impostazioni sviluppatore.
In Token di accesso personali selezionare Token dettagliato.
Selezionare il pulsante Genera nuovo token , quindi confermare la password, se richiesto.
Immettere un nome token e una descrizione per il token.
In Scadenza selezionare una data di scadenza per il token.
In Accesso al repository selezionare Solo repository e selezionare il repository a cui si vuole concedere l'accesso.
In Autorizzazioni selezionare Aggiungi autorizzazioni>Webhook>Lettura e scrittura.
Selezionare il pulsante Genera token .
Prendere nota del nuovo token. È necessario usare questo token in un secondo momento quando si aggiunge il connettore webhook come trigger.
Importante
Non è possibile accedere di nuovo a questo token. Copiarlo e incollarlo da qualche parte da usare più avanti nell'esercitazione.
Definire il webhook nella definizione OpenAPI
Si implementano webhook in Logic Apps e Power Automate come parte di un connettore personalizzato. Per creare il connettore, è necessario fornire una definizione OpenAPI che definisce la forma del webhook. Questa esercitazione usa una definizione OpenAPI di esempio scaricata per GitHub webhook.
Se si vuole creare un trigger ma non si dispone di una definizione OpenAPI da cui lavorare, usare l'interfaccia utente dei trigger nella procedura guidata del connettore personalizzato per definire i trigger webhook.
La definizione OpenAPI di esempio contiene tre parti fondamentali per il funzionamento del webhook:
- Creazione del webhook
- Definizione della richiesta hook in ingresso dall'API del servizio Web (in questo esempio di esercitazione GitHub)
- Eliminazione del webhook
Il connettore usa questa definizione OpenAPI per comprendere come creare, ricevere ed eliminare webhook per il repository GitHub.
Creare il webhook
Il connettore usa l'API del servizio Web (in questo esempio, l'API REST GitHub) per creare il webhook sul lato servizio Web inviando una richiesta HTTP POST all'endpoint di creazione webhook appropriato per il servizio Web (/repos/{owner}/{repo}/hooks nel caso di GitHub).
Quando si crea una nuova app per la logica o un flusso usando il connettore, il connettore invia una richiesta POST all'endpoint di creazione webhook del servizio Web come definito nella definizione OpenAPI del connettore. Invia anche una richiesta POST a questo URL se si modifica l'app per la logica o il trigger di flusso. Nella configurazione del percorso OpenAPI di esempio seguente la post proprietà contiene lo schema della richiesta di creazione del webhook da inviare all'API REST 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
La proprietà "x-ms-trigger": "single" è un'estensione dello schema che indica a Logic Apps e Power Automate di mostrare questo webhook nell'elenco dei trigger disponibili nel designer. Assicurarsi di includerlo.
Definire la richiesta di hook in ingresso dall'API
Definisci la struttura della richiesta hook in ingresso (la notifica da GitHub a Logic Apps o Power Automate) nella proprietà personalizzata x-ms-notification-content, come mostrato nell'esempio precedente. La richiesta non deve contenere l'intero contenuto della richiesta, ma solo le parti da usare nell'app per la logica o nel flusso.
Eliminare il webhook
Includere una definizione per eliminare il webhook nella definizione OpenAPI. App per la logica e Power Automate tentano di eliminare il webhook esistente se si aggiorna il trigger o se si elimina l'app per la logica o il flusso.
"/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 webhook being deleted",
"required": true,
"type": "string"
}
]
}
},
Non è incluso alcun header per la chiamata DELETE del webhook. La chiamata di eliminazione del webhook usa la stessa connessione del connettore.
Importante
Per consentire a Logic Apps o Power Automate di eliminare un webhook, l'API del servizio web deve includere un'intestazione HTTP Location nella risposta 201 quando viene creato il webhook. L'intestazione Location deve contenere il percorso del webhook usato con il metodo HTTP DELETE. Ad esempio, l'Locationintestazione inclusa nella risposta di GitHub segue questo formato: https://api.github.com/repos/<user name>/<repo name>/hooks/<hook ID>.
Importare la definizione OpenAPI
Per iniziare, importa la definizione OpenAPI per App per la logica, o per Power Automate.
Importare la definizione OpenAPI per Logic Apps
Passa al portale di Azure e apri il connettore per App per la logica creato in precedenza in Creare un connettore personalizzato in App per la logica di Azure.
Nel menu del connettore, seleziona Connettore per app per la logica, quindi seleziona Modifica.
In Generale selezionare Carica un file OpenAPI e quindi passare al file OpenAPI di esempio scaricato.
Importare la definizione OpenAPI per Power Automate
Andare alla pagina https://make.powerautomate.com/.
Nell'angolo in alto a destra selezionare l'icona a forma di ingranaggio e quindi selezionare Connettori personalizzati.
Selezionare Crea connettore personalizzato, quindi selezionare Importa una raccolta di Postman.
Immettere un nome per il connettore personalizzato, passare al file OpenAPI di esempio scaricato e selezionare Connetti.
Parametro Valore Titolo del connettore personalizzato "GitHubDemo"
Terminare la creazione del connettore personalizzato
Nella pagina Generale selezionare Continua.
Nella pagina Sicurezza sotto Tipo di autenticazione, seleziona Autenticazione di base.
Nella sezione Autenticazione di base immettere il testo Nome utente e Password per i campi etichetta. Queste etichette vengono visualizzate quando si utilizza il trigger in un'app per la logica o in un flusso.
Nella parte superiore della procedura guidata verificare che il nome sia impostato su "GitHubDemo" e quindi scegliere Crea connettore.
Ora sei pronto per usare il trigger in un'app per la logica o in un flusso oppure puoi leggere come creare i trigger dall'interfaccia utente.
Creare i trigger di webhook dall'interfaccia utente
In questa sezione si apprenderà come creare un trigger nell'interfaccia utente senza avere definizioni di trigger nella definizione OpenAPI. Inizia con una definizione OpenAPI di base o ricomincia da zero con la procedura guidata del connettore personalizzato.
Nella pagina Generale assicurarsi di specificare una descrizione e un URL.
Parametro Valore Descrizione "GitHub è un repository social di codice sorgente". URL "api.github.com" Nella pagina Sicurezza, configura l'autenticazione di base come hai fatto nella sezione precedente.
Nella pagina Definizione scegliere Nuovo trigger e compilare la descrizione per il trigger. In questo esempio, si crea un trigger che si attiva quando viene creata una pull request in un repository.
Parametro Valore Riepilogo "Si attiva quando viene effettuata una richiesta pull in un repository selezionato" Descrizione "Si attiva quando viene effettuata una richiesta pull in un repository selezionato" ID operazione "webhook-PR-trigger" Visibilità "nessuno" (vedi di seguito per ulteriori informazioni) Tipo di attivazione "Webhook" La proprietà Visibilità per operazioni e parametri in un'app per la logica o in un flusso ha le seguenti opzioni:
- nessuno: visualizzato normalmente nell'app per la logica o nel flusso
- avanzata: nascosti in un menu aggiuntivo
- interna: nascosti all'utente
- importante: sempre mostrati all'utente come prima cosa
L'area Richiesta visualizza le informazioni in base alla richiesta HTTP per l'azione. Scegli Importa da esempio.
Definire la richiesta per il trigger webhook e quindi selezionare Importa. Viene fornito un esempio da importare (nella sezione seguente). Per ulteriori informazioni, vedi le informazioni di riferimento sull'API GitHub. Logic Apps e Power Automate aggiungono automaticamente intestazioni standard e di sicurezza
content-type, quindi non è necessario definirle durante l'importazione da un esempio.
Parametro Valore Verbo "POST" URL "https://api.github.com/repos/{owner}/{repo}/hooks" Corpo Vedi di seguito { "name": "web", "active": true, "events": [ "pull_request" ], "config": { "url": "http://example.com/webhook" } }L'area Risposta visualizza le informazioni in base alla risposta HTTP per l'azione. Selezionare Aggiungi risposta predefinita.
Definire la risposta per il trigger webhook e quindi selezionare Importa. Di nuovo, forniamo un esempio di importazione. Per ulteriori informazioni, vedi le informazioni di riferimento sull'API GitHub.
{ "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" } } }Nell'area Configurazione del trigger, seleziona il parametro che deve ricevere il valore dell'URL di callback da GitHub. Questo parametro è la
urlproprietà nell'oggettoconfig.
Nella parte superiore della procedura guidata, immettere un nome e quindi scegliere Crea connettore.
Usa il webhook come trigger
Dopo aver configurato tutti gli elementi, usa il webhook tramite il connettore personalizzato in un'app per la logica o in un flusso. Creare quindi un flusso che invia un messaggio di posta elettronica ogni volta che il repository GitHub riceve un push Git.
In https://make.powerautomate.com/, nella parte superiore della pagina selezionare Flussi personali.
Seleziona Crea da zero.
Nella finestra di progettazione per Power Automate cerca il connettore personalizzato registrato in precedenza.
Selezionare l'elemento nell'elenco per usarlo come trigger.
Poiché è la prima volta che hai usato questo connettore personalizzato, connettiti ad esso. Immettere le informazioni di connessione e quindi selezionare Crea.
Parametro Valore Nome connessione Un nome descrittivo Nome utente Il nome utente GitHub Password Il token di accesso personale creato in precedenza Immettere i dettagli sul repository da monitorare. Puoi riconoscere i campi dall'oggetto WebhookRequestBody nel file OpenAPI.
Parametro Valore proprietario Il proprietario del repository da monitorare repo Il repository da monitorare Importante
Usa un repo per cui il tuo account dispone delle autorizzazioni necessarie. Il modo più semplice per eseguire questa operazione consiste nell'usare il proprio repository.
Selezionare Nuovo passaggio>Aggiungi un'azione.
Cercare e selezionare l'azione Invia un messaggio di posta elettronica (V2).
Immettere testo nel campo Corpo e negli altri campi, usando i valori della finestra di dialogo contenuto dinamico. I valori provengono dall'oggetto WebhookPushResponse nel file OpenAPI.
Nella parte superiore della pagina assegna un nome al flusso e fai clic su Crea flusso.
Verifica e risoluzione dei problemi
Per verificare che tutto sia configurato correttamente, selezionare Flussi personali e quindi selezionare l'icona delle informazioni accanto al nuovo flusso per visualizzare la cronologia di esecuzione:
- Dovresti già vedere almeno un'esecuzione completata in seguito alla creazione del webhook. Questa esecuzione indica che il webhook è stato creato correttamente sul lato GitHub.
- Se l'esecuzione non è riuscita, esaminare i dettagli dell'esecuzione per verificare il motivo per cui non è riuscito. Se l'errore è dovuto a una
404 Not Foundrisposta, è probabile che l'account GitHub non disponga delle autorizzazioni corrette per creare un webhook nel repository usato.
Riepilogo
Se tutto è stato configurato correttamente, si ricevono notifiche push nell'app per dispositivi mobili Power Automate ogni volta che si verifica un push Git nel repository GitHub selezionato. Usando il processo precedente, è possibile usare qualsiasi servizio che supporta webhook come trigger nei flussi.
Passaggi successivi
- Creare un connettore personalizzato per un'API Web
- Autenticare l'API e il connettore con Microsoft Entra ID
Fornire commenti
L'invio da parte degli utenti di feedback sui problemi riscontrati con la piattaforma di connettori o di idee su nuove funzionalità è molto apprezzato. Per fornire un feedback, vai a Inviare problemi o ottenere assistenza per i connettori e seleziona il tipo di commenti.