Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Webhooks zijn eenvoudige HTTP-callbacks die gebeurtenismeldingen bieden wanneer er iets gebeurt in een webservice. In Azure Logic Apps en Power Automate kunt u webhooks als triggers gebruiken. Een logische app of stroom luistert naar deze trigger en voert een actie uit wanneer de trigger wordt geactiveerd. In deze zelfstudie ziet u hoe u een webhook gebruikt als trigger via een aangepaste connector die is gedefinieerd met een OpenAPI-specificatie.
Notitie
In dit artikel wordt gebruikgemaakt van GitHub als voorbeeld van een service die meldingen kan verzenden via webhooks, maar u kunt de technieken die hier worden gedemonstreerd uitbreiden naar elke service die webhooks toestaat.
Vereisten
- Een van de volgende abonnementen:
- Azure, als u Logic Apps gebruikt
- Power Automate
- Basiservaring bij het bouwen van logische apps of cloudstromen en het maken van aangepaste connectors op basis van OpenAPI-definities.
- Als u Logic Apps gebruikt, moet u eerst een aangepaste Azure Logic Apps-connector maken .
- Basiskennis van webhooks.
- Basiskennis van de OpenAPI Specificatie (voorheen bekend als Swagger).
- Een GitHub account.
- De voorbeelddefinitie OpenAPI voor deze tutorial. Als u deze nog niet hebt, downloadt u deze om te gebruiken in de volgende stappen. Anders moet u een aangepaste OpenAPI-definitie voor uw webhook maken.
Verificatie inschakelen in GitHub
Een webservice-API die een webhookaanvraag naar Logic Apps verzendt of Power Automate doorgaans een vorm van verificatie gebruikt en GitHub is geen uitzondering. GitHub ondersteunt verschillende typen verificatie. In deze zelfstudie wordt gebruikgemaakt van fijnmazige persoonlijke toegangstokens van GitHub.
Ga naar GitHub en meld u aan als u dat nog niet hebt gedaan.
Selecteer in de rechterbovenhoek uw profielfoto en selecteer vervolgens in het menu Instellingen.
Selecteer ontwikkelaarsinstellingen in het menu aan de linkerkant.
Onder Persoonlijke toegangstokens, selecteer Fijngranulaire tokens.
Selecteer de knop Nieuw token genereren en bevestig uw wachtwoord indien aangevraagd.
Voer een tokennaam en beschrijving in voor het token.
Selecteer onder Vervaldatum een vervaldatum voor het token.
Selecteer onder Opslagplaatstoegangalleen opslagplaatsen en selecteer de opslagplaats waarvoor u toegang wilt verlenen.
Selecteer onder Machtigingen de optie Machtigingentoevoegen>webhooks>lezen en schrijven.
Selecteer de knop Token genereren .
Noteer het nieuwe token. U moet dit token later gebruiken wanneer u uw webhookconnector als trigger toevoegt.
Belangrijk
U hebt geen toegang meer tot dit token. Kopieer en plak deze ergens om later in de zelfstudie te gebruiken.
De webhook definiëren in de OpenAPI-definitie
U implementeert webhooks in Logic Apps en Power Automate als onderdeel van een aangepaste connector. Als u de connector wilt maken, moet u een OpenAPI-definitie opgeven waarmee de vorm van de webhook wordt gedefinieerd. In deze zelfstudie wordt een gedownloade OpenAPI-voorbeelddefinitie gebruikt voor GitHub webhooks.
Als u een trigger wilt maken, maar geen OpenAPI-definitie hebt om mee te werken, gebruikt u de interface voor triggers in de wizard voor aangepaste connectors om webhooktriggers te definiëren.
De OpenAPI-voorbeelddefinitie bevat drie onderdelen die essentieel zijn om de webhook te laten werken:
- De webhook maken
- De binnenkomende hook-aanvraag definiëren vanuit de webservice-API (in dit zelfstudievoorbeeld GitHub)
- De webhook verwijderen
De connector gebruikt deze OpenAPI-definitie om te begrijpen hoe u webhooks voor de GitHub-opslagplaats maakt, ontvangt en verwijdert.
De webhook maken
De connector maakt gebruik van de webservice-API (in ons voorbeeld de GitHub REST API) om de webhook naast de webservice te maken door een HTTP POST-aanvraag te verzenden naar het juiste eindpunt voor het maken van een webhook voor de webservice (/repos/{owner}/{repo}/hooksin het geval van GitHub).
Wanneer u een nieuwe logische app of stroom maakt met behulp van de connector, verzendt de connector een POST-aanvraag naar het webservice-eindpunt voor het maken van een webhook zoals gedefinieerd in de OpenAPI-definitie van de connector. Er wordt ook een POST-aanvraag naar deze URL verzonden als u de Logic App of flowtrigger wijzigt. In de volgende voorbeeldconfiguratie van het OpenAPI-pad bevat de post eigenschap het schema van de webhookaanvraag maken die naar de GitHub REST API moet worden verzonden.
"/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"
}
}
}
}
},
Belangrijk
De "x-ms-trigger": "single"-eigenschap is een schema-extensie waarmee Logic Apps en Power Automate wordt aangegeven deze webhook weer te geven in de lijst met beschikbare triggers in de ontwerper. Zorg ervoor dat u het toevoegt.
De binnenkomende hookaanvraag via de API definiëren
Definieer de vorm van de binnenkomende hookaanvraag (de melding van GitHub naar Logic Apps of Power Automate) in de aangepaste x-ms-notification-content eigenschap, zoals wordt weergegeven in het vorige voorbeeld. De aanvraag hoeft niet de volledige inhoud van de aanvraag te bevatten, alleen de gedeelten die u wilt gebruiken in uw logische app of stroom.
De webhook verwijderen
Neem een definitie op voor het verwijderen van de webhook in de OpenAPI-definitie. Logic Apps en Power Automate proberen de bestaande webhook te verwijderen als u de trigger bijwerkt of als u de Logic App of flow verwijdert.
"/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"
}
]
}
},
Er is geen header opgenomen voor de webhook-aanroep verwijderen. De webhook-verwijderaanroep gebruikt dezelfde verbinding als de connector.
Belangrijk
Als u Logic Apps of Power Automate wilt inschakelen om een webhook te verwijderen, moet de API van de webservice een Location HTTP-header bevatten in het 201-antwoord wanneer de webhook wordt gemaakt. De Location header moet het pad naar de webhook bevatten die wordt gebruikt met de HTTP DELETE-methode. De header die is opgenomen in het antwoord van GitHub volgt bijvoorbeeld Location deze indeling: https://api.github.com/repos/<user name>/<repo name>/hooks/<hook ID>.
De OpenAPI-definitie importeren
Begin met het importeren van de OpenAPI definitie voor Logic Apps of voor Power Automate.
De OpenAPI-definitie importeren voor Logic Apps
Ga naar de Azure-portal en open de Logic Apps-connector die u eerder hebt gemaakt in Een aangepaste Azure Logic Apps-connector maken.
Selecteer in het menu van uw connector de optie Logic Apps Connector en selecteer vervolgens Bewerken.
Selecteer onder Algemeeneen OpenAPI-bestand uploaden en ga vervolgens naar het openAPI-voorbeeldbestand dat u hebt gedownload.
De OpenAPI-definitie importeren voor Power Automate
Ga naar https://make.powerautomate.com/.
Selecteer in de rechterbovenhoek het tandwielpictogram en selecteer vervolgens Aangepaste verbindingslijnen.
Selecteer Aangepaste connector maken en selecteer vervolgens een Postman-verzameling importeren.
Voer een naam in voor de aangepaste connector, ga naar het OpenAPI-voorbeeldbestand dat u hebt gedownload en selecteer Verbinding maken.
Parameter Waarde Titel van aangepaste connector "GitHubDemo"
Het maken van de aangepaste connector voltooien
Selecteer Doorgaan op de pagina Algemeen.
Selecteer op de pagina Beveiliging onder Authenticatietype de optie Basisverificatie.
Voer in de sectie Basisverificatie voor de labelvelden de tekst gebruikersnaam en Wachtwoord in. Deze labels worden weergegeven wanneer u de trigger gebruikt in een logische app of stroom.
Controleer bovenaan in de wizard of de naam is ingesteld op "GitHubDemo" en kies vervolgens Connector maken.
U bent nu klaar om de trigger te gebruiken in een logische app of stroom. U kunt ook verder lezen over het maken van triggers vanuit de gebruikersinterface. ...
Webhook-triggers maken vanuit de gebruikersinterface
In deze sectie leert u hoe u een trigger maakt in de gebruikersinterface zonder triggerdefinities in uw OpenAPI-definitie te hebben. Begin met een basislijn voor uw OpenAPI-definitie of begin helemaal opnieuw in de wizard voor aangepaste connectors.
Zorg ervoor dat u op de pagina Algemeen een beschrijving en URL opgeeft.
Parameter Waarde Omschrijving "GitHub is een opslagplaats voor sociale broncodes." URL "api.github.com" Configureer op de pagina Beveiliging basisverificatie zoals u in de vorige sectie hebt gedaan.
Kies op de pagina Definitiede optie Nieuwe trigger en vul de beschrijving voor de trigger in. In dit voorbeeld maakt u een trigger die wordt geactiveerd wanneer een pull-aanvraag wordt gedaan bij een opslagplaats.
Parameter Waarde Samenvatting Wordt geactiveerd wanneer een pull request wordt gemaakt in een geselecteerde repository Omschrijving Wordt geactiveerd wanneer een pull request wordt gemaakt in een geselecteerde repository Operatie-ID "webhook-PR-trigger" Zichtbaarheid "geen" (zie hieronder voor meer informatie) Triggertype "Webhook" De eigenschap Zichtbaarheid voor bewerkingen en parameters in een logische app of stroom heeft de volgende opties:
- geen: normaal weergegeven in de Logic App of flow
- geavanceerd: verborgen onder een extra menu
- intern: verborgen voor de gebruiker
- belangrijk: wordt altijd eerst aan de gebruiker getoond
In het gebied Aanvraag wordt informatie weergegeven op basis van de HTTP-aanvraag voor de actie. Kies Importeren uit voorbeeld.
Definieer de aanvraag voor de webhooktrigger en selecteer Vervolgens Importeren. We bieden een voorbeeld dat u kunt importeren (in de volgende sectie). Zie de GitHub API-referentie voor meer informatie. Logic Apps en Power Automate voegen automatisch standaard
content-type- en beveiligingsheaders toe, dus u hoeft deze niet te definiëren tijdens het importeren uit een voorbeeld.
Parameter Waarde Werkwoord "POST" URL "https://api.github.com/repos/{owner}/{repo}/hooks" Hoofdtekst Zie hieronder { "name": "web", "active": true, "events": [ "pull_request" ], "config": { "url": "http://example.com/webhook" } }In het gebied Response wordt informatie weergegeven op basis van het HTTP-antwoord voor de actie. Selecteer Standaardantwoord toevoegen.
Definieer het antwoord voor de webhooktrigger en selecteer Importeren. Opnieuw bieden we u een voorbeeldbestand om te importeren. Zie de GitHub API-referentie voor meer informatie.
{ "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" } } }Selecteer in het gedeelte Triggerconfiguratie de parameter die de callback-URL-waarde van GitHub moet ontvangen. Deze parameter is de
urleigenschap in hetconfigobject.
Voer boven aan de wizard een naam in en kies vervolgens Connector maken.
De webhook als trigger gebruiken
Nadat u alles hebt geconfigureerd, kunt u de webhook gebruiken via de aangepaste connector in een logische app of stroom. Maak vervolgens een stroom waarmee een e-mail wordt verzonden wanneer uw GitHub opslagplaats een Git-push ontvangt.
https://make.powerautomate.com/Selecteer Mijn stromen bovenaan de pagina.
Selecteer Geheel nieuw maken.
Zoek in de ontwerpfunctie van Power Automate naar de aangepaste connector die u eerder hebt geregistreerd.
Selecteer het item in de lijst om dit als trigger te gebruiken.
Omdat dit de eerste keer is dat u deze aangepaste connector hebt gebruikt, maakt u er verbinding mee. Voer verbindingsgegevens in en selecteer vervolgens Maken.
Parameter Waarde Verbindingsnaam Een beschrijvende naam gebruikersnaam Uw GitHub-gebruikersnaam Wachtwoord Het persoonlijke toegangstoken dat u eerder hebt gemaakt Voer details in over de opslagplaats die u wilt bewaken. Mogelijk herkent u de velden uit het WebhookRequestBody object in het OpenAPI bestand.
Parameter Waarde eigenaar De eigenaar van de repository die bewaakt moet worden repository De opslagplaats die moet worden bijgehouden Belangrijk
Gebruik een opslagplaats waarvoor uw account rechten heeft. De eenvoudigste manier om dit te doen, is door uw eigen repository te gebruiken.
Selecteer Nieuwe stap>Een actie toevoegen.
Zoek en selecteer de actie Een e-mail verzenden (V2).
Voer tekst in het veld Hoofdtekst en de andere velden in, met behulp van waarden uit het dialoogvenster dynamische inhoud. Waarden zijn afkomstig van het object WebhookPushResponse in het OpenAPI-bestand.
Geef bovenaan de pagina de stroom een naam en kies Stroom maken.
Verificatie en probleemoplossing
Als u wilt controleren of alles correct is ingesteld, selecteert u Mijn stromen en selecteert u vervolgens het informatiepictogram naast de nieuwe stroom om de uitvoeringsgeschiedenis weer te geven:
- U zou al ten minste één Geslaagd-uitvoering moeten zien na het maken van de webhook. Deze run geeft aan dat de webhook succesvol is aangemaakt aan de kant van GitHub.
- Als de uitvoering is mislukt, controleert u de uitvoeringsdetails om te zien waarom de uitvoering is mislukt. Als de fout te wijten is aan een
404 Not Foundantwoord, beschikt uw GitHub account waarschijnlijk niet over de juiste machtigingen om een webhook te maken op de opslagplaats die u hebt gebruikt.
Samenvatting
Als u alles correct hebt geconfigureerd, ontvangt u pushmeldingen in de Power Automate mobiele app wanneer een Git-push plaatsvindt op de GitHub opslagplaats die u hebt geselecteerd. Door het bovenstaande proces te gebruiken, kunt u elke service die webhooks ondersteunt als trigger in uw flows gebruiken.
Volgende stappen
- Een aangepaste connector voor een web-API maken
- Verifieer uw API en connector met Microsoft Entra ID
Feedback geven
We stellen feedback over problemen met ons connectorplatform of ideeën voor nieuwe functies zeer op prijs. Als u feedback wilt geven, gaat u naar Problemen indienen of hulp krijgen met connectoren en selecteert u het type feedback.