Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les webhooks sont des rappels HTTP simples qui fournissent des notifications d’événements lorsqu’un événement se produit dans un service web. Dans Azure Logic Apps et Power Automate vous pouvez utiliser des webhooks comme déclencheurs. Une application logique ou un flux écoute ce déclencheur et exécute une action chaque fois que le déclencheur se déclenche. Ce tutoriel montre comment utiliser un webhook comme déclencheur via un connecteur personnalisé défini avec une spécification OpenAPI.
Remarque
Cet article utilise GitHub comme exemple de service qui peut envoyer des notifications via des webhooks, mais vous pouvez étendre les techniques présentées ici à n’importe quel service qui autorise les webhooks.
Conditions préalables
- L’un des abonnements suivants :
- Azure, si vous utilisez Logic Apps
- Power Automate
- Expérience de base de création d’applications logiques ou de flux cloud et création de connecteurs personnalisés à partir de définitions OpenAPI.
- Si vous utilisez Logic Apps, commencez par créer un connecteur personnalisé Azure Logic Apps.
- Compréhension de base des webhooks.
- Notions de base sur la spécification OpenAPI (anciennement appelée Swagger).
- Un compte GitHub.
- L’exemple de définition OpenAPI pour ce tutoriel. Si vous ne l’avez pas déjà, téléchargez-la pour l’utiliser dans les étapes suivantes. Sinon, vous devez créer une définition OpenAPI personnalisée pour votre webhook.
Activer l’authentification dans GitHub
Une API de service web qui envoie une demande de webhook à Logic Apps ou Power Automate utilise généralement une forme d’authentification et GitHub n’est pas une exception. GitHub prend en charge plusieurs types d’authentification. Ce tutoriel utilise des jetons d’accès personnels GitHub à granularité fine.
Accédez à GitHub et connectez-vous si ce n'est pas déjà fait.
En haut à droite, sélectionnez votre image de profil, puis, dans le menu, sélectionnez Paramètres.
Dans le menu de gauche, sélectionnez Paramètres du développeur.
Sous Jetons d’accès personnels, sélectionnez Jetons affinés.
Sélectionnez le bouton Générer un nouveau jeton , puis confirmez votre mot de passe si demandé.
Entrez un nom de jeton et une description pour le jeton.
Sous Expiration, sélectionnez une date d’expiration pour le jeton.
Sous Accès au référentiel, sélectionnez Sélectionner uniquement les référentiels, puis sélectionnez le référentiel auquel vous souhaitez accorder l’accès.
Sous Autorisations, sélectionnez Ajouter des autorisations>>Lecture et écriture.
Sélectionnez le bouton Générer un jeton .
Prenez note du nouveau jeton. Vous devez utiliser ce jeton ultérieurement lors de l’ajout de votre connecteur webhook en tant que déclencheur.
Important
Vous ne pouvez plus accéder à ce jeton. Copiez et collez-le quelque part pour l’utiliser plus loin dans le didacticiel.
Définir le webhook dans la définition OpenAPI
Vous implémentez des webhooks dans Logic Apps et Power Automate dans le cadre d’un connecteur personnalisé. Pour créer le connecteur, vous devez fournir une définition OpenAPI qui définit la forme du webhook. Ce tutoriel utilise un exemple de définition OpenAPI téléchargé pour GitHub webhooks.
Si vous souhaitez créer un déclencheur mais que vous n’avez pas de définition OpenAPI à partir de laquelle travailler, utilisez l’interface utilisateur des déclencheurs dans l’Assistant Connecteur personnalisé pour définir des déclencheurs de webhook.
L’exemple de définition OpenAPI contient trois parties essentielles à l’utilisation du webhook :
- Création du webhook
- Définition de la demande de hook entrante à partir de l’API de service web (dans cet exemple de didacticiel, GitHub)
- Suppression du webhook
Le connecteur utilise cette définition OpenAPI pour comprendre comment créer, recevoir et supprimer des webhooks pour le référentiel GitHub.
Créer le webhook
Le connecteur utilise l’API de service web (dans notre exemple, l’API REST GitHub) pour créer le webhook côté service web en envoyant une requête HTTP POST au point de terminaison de création de webhook approprié pour le service web (/repos/{owner}/{repo}/hooksdans le cas de GitHub).
Lorsque vous créez une application logique ou un flux à l’aide du connecteur, le connecteur envoie une requête POST au point de terminaison de création du webhook du service web tel que défini dans la définition OpenAPI du connecteur. Il envoie également une requête POST à cette URL si vous modifiez l’application logique ou le déclencheur de flux. Dans l’exemple de configuration de chemin OpenAPI suivant, la post propriété contient le schéma de la demande de création de webhook à envoyer à l’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"
}
}
}
}
},
Important
La "x-ms-trigger": "single" propriété est une extension de schéma qui indique à Logic Apps et Power Automate d’afficher ce webhook dans la liste des déclencheurs disponibles dans le concepteur. Veillez à l’inclure.
Définir la demande entrante de raccordement à partir de l’API
Définissez la forme de la demande de hook entrante (notification de GitHub à Logic Apps ou Power Automate) dans la propriété personnaliséex-ms-notification-content, comme indiqué dans l’exemple précédent. La requête n’a pas besoin de contenir l’intégralité du contenu de la requête, uniquement les parties que vous souhaitez utiliser dans votre application logique ou flux.
Supprimer le webhook
Incluez une définition pour supprimer le webhook dans la définition OpenAPI. Logic Apps et Power Automate tentent de supprimer le webhook existant lorsque vous mettez à jour le déclencheur ou lorsque vous supprimez l’application logique ou le flux.
"/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"
}
]
}
},
Aucun en-tête n’est inclus dans l’appel de suppression du webhook. L’appel de suppression du webhook utilise la même connexion que le connecteur.
Important
Pour activer Logic Apps ou Power Automate pour supprimer un webhook, l'API du service web doit inclure un Location en-tête HTTP dans la réponse 201 lorsque le webhook est créé. L’en-tête Location doit contenir le chemin d’accès au webhook utilisé avec la méthode HTTP DELETE. Par exemple, l'en-tête inclus dans la Location réponse de GitHub suit ce format : https://api.github.com/repos/<user name>/<repo name>/hooks/<hook ID>.
Importer la définition OpenAPI
Commencez par importer la définition OpenAPI pour Logic Apps ou pour Power Automate.
Importez la définition OpenAPI pour Logic Apps
Accédez au Portail Azure et ouvrez le connecteur Logic Apps que vous avez créé dans Créer un connecteur personnalisé Azure Logic Apps.
Dans le menu de votre connecteur, choisissez Connecteur Logic Apps, puis sélectionnez Modifier.
Sous Général, sélectionnez Charger un fichier OpenAPI, puis accédez à l’exemple de fichier OpenAPI que vous avez téléchargé.
Importer la définition OpenAPI pour Power Automate
Accédez à https://make.powerautomate.com/.
Dans le coin supérieur droit, sélectionnez l’icône d’engrenage, puis sélectionnez Connecteurs personnalisés.
Sélectionnez Créer un connecteur personnalisé, puis importez une collection Postman.
Entrez un nom pour le connecteur personnalisé, accédez à l’exemple de fichier OpenAPI que vous avez téléchargé, puis sélectionnez Se connecter.
Paramètre Valeur Titre du connecteur personnalisé "GitHubDemo"
Terminer la création du connecteur personnalisé
Dans la page Général , sélectionnez Continuer.
Sur la page Sécurité, sous Type d’authentification, sélectionnez Authentification de base.
Dans la section Authentification de base, pour les champs d’étiquette, entrez le nom d’utilisateur et le mot de passe. Ces étiquettes s’affichent lorsque vous utilisez le déclencheur dans une application logique ou un flux.
En haut de l’assistant, vérifiez que le nom est bien « GitHubDemo », puis sélectionnez Créer un connecteur.
Vous êtes maintenant prêt à utiliser le déclencheur dans une application logique ou un flux, ou vous pouvez découvrir comment créer des déclencheurs à partir de l’interface utilisateur.
Créer des déclencheurs de webhook à partir de l’interface utilisateur
Dans cette section, vous allez apprendre à créer un déclencheur dans l’interface utilisateur sans avoir de définitions de déclencheur dans votre définition OpenAPI. Commencez avec une définition OpenAPI de base ou recommencez à zéro dans l’assistant de connecteur personnalisé.
Dans la page Général , veillez à spécifier une description et une URL.
Paramètre Valeur Description « GitHub est un référentiel de code source social. » URL "api.github.com" Sur la page Sécurité, configurez l’authentification de base comme vous l’avez fait dans la section précédente.
Dans la page Définition , choisissez Nouveau déclencheur et renseignez la description de votre déclencheur. Dans cet exemple, vous créez un déclencheur qui se déclenche lorsqu’une demande de tirage (pull request) est effectuée dans un référentiel.
Paramètre Valeur Résumé « Se déclenche lorsqu’une demande d’extraction est effectuée vers un référentiel sélectionné » Description « Se déclenche lorsqu’une demande d’extraction est effectuée vers un référentiel sélectionné » ID d’opération "webhook-PR-trigger" Visibilité « Aucun » (pour plus d’informations, voir ci-dessous) Type de déclencheur "Webhook" La propriété Visibilité pour les opérations et les paramètres dans une application ou un flux logique a les options suivantes :
- aucun : s’affiche normalement dans l’application logique ou le flux
- avancée : masqué sous un menu supplémentaire
- interne : masqué pour l’utilisateur
- importante : s’affiche toujours pour l’utilisateur en premier
La zone Demande affiche des informations basées sur la demande HTTP pour l’action. Choisissez Importer à partir d’un exemple.
Définissez la demande du déclencheur webhook, puis sélectionnez Importer. Nous fournissons un exemple pour vous permettre d’importer (dans la section suivante). Pour plus d’informations, voir la Référence à l’API GitHub. Logic Apps et Power Automate ajoutent automatiquement des en-têtes de sécurité et standard
content-type. Vous n’avez donc pas besoin de les définir lors de l’importation à partir d’un exemple.
Paramètre Valeur Verbe « POST » URL "https://api.github.com/repos/{owner}/{repo}/hooks" ; Corps Voir ci-dessous { "name": "web", "active": true, "events": [ "pull_request" ], "config": { "url": "http://example.com/webhook" } }La zone Réponse affiche des informations basées sur la réponse HTTP pour l’action. Sélectionnez Ajouter la réponse par défaut.
Définissez la réponse du déclencheur webhook, puis sélectionnez Importer. Nous vous fournissons aussi un exemple à importer. Pour plus d’informations, voir la Référence à l’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" } } }Dans la zone Configuration du déclencheur, sélectionnez le paramètre qui doit recevoir la valeur de l’URL de rappel de GitHub. Ce paramètre est la
urlpropriété de l’objetconfig.
En haut de l’assistant, entrez un nom, puis choisissez Créer un connecteur.
Utiliser le webhook comme déclencheur
Après avoir configuré tout, utilisez le webhook via le connecteur personnalisé dans une application logique ou un flux. Ensuite, créez un flux qui envoie un e-mail chaque fois que votre dépôt GitHub reçoit un push git.
Dans https://make.powerautomate.com/, en haut de la page, sélectionnez Mes flux.
Sélectionnez Créer à partir d’un champ vide.
Dans le concepteur Power Automate, recherchez le connecteur personnalisé que vous avez enregistré précédemment.
Sélectionnez l’élément dans la liste pour l’utiliser comme déclencheur.
Étant donné que c’est la première fois que vous avez utilisé ce connecteur personnalisé, connectez-vous à celui-ci. Entrez les informations de connexion, puis sélectionnez Créer.
Paramètre Valeur Nom de connexion Nom descriptif Nom d’utilisateur Votre nom d’utilisateur GitHub Mot de passe Jeton d’accès personnel que vous avez créé précédemment Saisissez des informations sur le dépôt que vous souhaitez surveiller. Vous pouvez reconnaître les champs de l’objet WebhookRequestBody dans le fichier OpenAPI.
Paramètre Valeur propriétaire Propriétaire du référentiel à surveiller dépôt Le référentiel à surveiller Important
Utilisez un dépôt auquel votre compte a accès. La méthode la plus simple consiste à utiliser votre propre dépôt.
Sélectionnez Nouvelle étape>Ajouter une action.
Recherchez et sélectionnez l’action Envoyer un e-mail (V2).
Entrez du texte dans le champ Corps et les autres champs, en utilisant des valeurs de la boîte de dialogue de contenu dynamique. Les valeurs proviennent de l’objet WebhookPushResponse dans le fichier OpenAPI.
En haut de la page, nommez votre flux, puis sélectionnez Créer un flux.
Vérification et résolution des problèmes
Pour vérifier que tout est configuré correctement, sélectionnez Mes flux, puis sélectionnez l’icône d’informations en regard du nouveau flux pour afficher l’historique des exécutions :
- Vous devriez déjà voir au moins une exécution réussie lors de la création du webhook. Cette exécution indique que le webhook a été créé avec succès côté GitHub.
- Si l’exécution a échoué, passez en revue les détails de l’exécution pour voir pourquoi elle a échoué. Si l'échec était dû à une
404 Not Foundréponse, votre compte GitHub n'a probablement pas les autorisations appropriées pour créer un webhook sur le dépôt que vous avez utilisé.
Résumé
Si vous avez configuré tout correctement, vous recevez des notifications Push dans l’application mobile Power Automate chaque fois qu’un push Git se produit sur le référentiel GitHub que vous avez sélectionné. En utilisant le processus précédent, vous pouvez utiliser n’importe quel service compatible webhook comme déclencheur dans vos flux.
Étapes suivantes
- Créer un connecteur personnalisé pour une API web
- Authentifier votre API et votre connecteur avec Microsoft Entra ID
Fournir des commentaires
Nous apprécions grandement les commentaires sur les problèmes liés à notre plate-forme de connecteurs ou les idées de nouvelles fonctionnalités. Pour fournir des commentaires, accédez à Soumettre des problèmes ou obtenir de l’aide avec les connecteurs et sélectionnez votre type de commentaire.