Webhooks et événements AEM

Découvrez comment recevoir des événements AEM sur un webhook et consulter les détails de l’événement tels que la payload, les en-têtes et les métadonnées.

Dans cet exemple, en utilisant un webhook hébergé fourni par Adobe, vous pouvez recevoir des événements AEM sans avoir à configurer votre propre webhook. Ce webhook fourni par Adobe est hébergé sur Glitch, une plateforme connue pour proposer un environnement web propice à la création et au déploiement d’applications web. Cependant, vous pouvez tout de même utiliser votre propre webhook si vous le souhaitez.

Conditions préalables

Les éléments suivants sont requis afin de terminer ce tutoriel :

Accéder à un webhook

Pour accéder au webhook fourni par Adobe, procédez comme suit :

  • Vérifiez que vous pouvez accéder au webhook hébergé sur Glitch dans un nouvel onglet du navigateur.

    Webhook hébergé sur Glitch

  • Saisissez un nom unique pour votre webhook, par exemple, <YOUR_PETS_NAME>-aem-eventing, et cliquez sur Connecter. Le message Connected to: ${YOUR-WEBHOOK-URL} doit s’afficher à l’écran.

    Glitch – Créer un webhook

  • Notez l’URL du webhook. Vous en aurez besoin plus loin dans ce tutoriel.

Configurer un webhook dans un projet Adobe Developer Console

Pour recevoir des événements AEM sur l’URL du webhook ci-dessus, procédez comme suit :

  • Dans Adobe Developer Console, accédez à votre projet et cliquez pour l’ouvrir.

  • Sous la section Produits et services, cliquez sur les points de suspension ... en regard de la carte d’événements de votre choix qui doit envoyer des événements AEM au webhook et sélectionnez Modifier.

    Modification d’un projet Adobe Developer Console

  • Dans la boîte de dialogue Configurer l’enregistrement d’événement qui vient de s’ouvrir, cliquez sur Suivant pour passer à l’étape Comment recevoir des événements.

    Configuration d’un projet Adobe Developer Console

  • À l’étape Comment recevoir des événements, sélectionnez l’option Webhook et collez l’URL du webhook que vous avez copiée précédemment à partir du webhook hébergé sur Glitch, puis cliquez sur Enregistrer les événements configurés.

    Webhook de projet Adobe Developer Console

  • Sur la page du webhook Glitch, une requête GET doit s’afficher. Il s’agit d’une requête de défi envoyée par les événements Adobe I/O pour vérifier l’URL du webhook.

    Glitch – Requête de défi

Déclencher des événements AEM

Pour déclencher des événements AEM à partir de votre environnement AEM as a Cloud Service qui a été enregistré dans le projet Adobe Developer Console ci-dessus, procédez comme suit :

  • Accédez à votre environnement de création AEM as a Cloud Service via Cloud Manager et connectez-vous.

  • Selon vos Événements abonnés, créez, mettez à jour, supprimez, publiez ou annulez la publication d’un fragment de contenu.

Vérifier les détails de l’événement

Après avoir effectué les étapes ci-dessus, vous devriez voir les événements AEM diffusés au webhook. Recherchez la requête POST dans la page du webhook Glitch.

Glitch – Requête POST

Voici les détails clés de la requête POST :

  • chemin : /webhook/${YOUR-WEBHOOK-URL}, par exemple /webhook/AdobeTM-aem-eventing

  • en-têtes : en-têtes de requête envoyés par les événements Adobe I/O, par exemple :

{
"connection": "close",
"x-forwarded-for": "34.205.178.127,::ffff:10.10.10.136,::ffff:10.10.84.114",
"x-forwarded-proto": "https,http,http",
"x-forwarded-port": "443,80,80",
"host": "lovely-ancient-coaster.glitch.me",
"content-length": "826",
"x-adobe-public-key2-path": "/prod/keys/pub-key-IkpzhSpTw0.pem",
"x-adobe-delivery-id": "18abfb47-d24a-4684-ade8-f442a3444033",
"x-adobe-provider": "aemsites_7ABB3E6A5A7491460A495D61@AdobeOrg_acct-aem-p46652-e1074060@adobe.com",
"x-adobe-public-key1-path": "/prod/keys/pub-key-Ptc2pD9vT9.pem",
"x-adobe-event-id": "a0f3fb7d-b02c-4612-aac6-e472b80af793",
"x-adobe-event-code": "aem.sites.contentFragment.modified",
"user-agent": "Adobe/1.0",
"x-adobe-digital-signature-2": "zGLso15+6PV6X6763/x6WqgxDlEXpkv5ty8q4njaq3aUngAI9VCcYonbScEjljRluzjZ05uMJmRfNxwjj60syxEJPuc0dpmMU635gfna7I4T7IaHs496wx4m2E5mvCM+aKbNQ+NPOutyTqI8Ovq29P2P87GIgMlGhAtOaxRVGNc6ksBxc2tCWbrKUhW8hPJ0sHphU499dN4TT32xrZaiRw4akT3M/hYydsA8dcWpJ7S4dpuDS21YyDHAB8s9Dawtr3fyPEyLgZzpwZDfCqQ8gdSCGqKscE4pScwqPkKOYCHDnBvDZVe583jhcZbHGjk7Ncp/FrgQk7avWsk5XlzcuA==",
"x-adobe-digital-signature-1": "QD7THFJ1vmJqD/BatIpzO6+ACQ9cSKPR7XVaW0LI7cN/xs7ucyri6dmkerOPe9EJpjGoqCg8rxWedrIRQB3lgVskChbHH3Ujx5YG0aTQLSd1Lsn5CFbW1U0l0GqId9Cnd6MccrqSznZXcdW1rMFuRk8+gqwabBifSaLbu3r30G5hmqQd72VtiYTE4m23O3jYIMiv62pRP+a+p4NjNj1XG320uRSry+BPniTjDJ6oN/Ng7aUEKML8idZ/ZTqeh/rJSrVO95UryUolFDRwDkRn5zKonbvhSLAeXzaPhvimWUHtldq9M1WTyRMpsBk8BRzaklxlq+woJ2UjYPUIEzjotw==",
"accept-encoding": "deflate,compress,identity",
"content-type": "application/cloudevents+json; charset=UTF-8",
"x-forwarded-host": "lovely-ancient-coaster.glitch.me",
"traceparent": "00-c27558588d994f169186ca6a3c6607d4-a7e7ee36625488d4-01"
}
  • corps/payload : corps de la requête envoyé par les événements Adobe I/O, par exemple :
{
  "specversion": "1.0",
  "type": "aem.sites.contentFragment.modified",
  "source": "acct:aem-p46652-e1074060@adobe.com",
  "id": "bf922a49-9db4-4377-baf4-70e96e15c45f",
  "time": "2023-12-12T20:36:43.583228Z",
  "dataschema": "https://ns.adobe.com/xdm/aem/sites/events/content-fragment-modified.json",
  "datacontenttype": "application/json",
  "data": {
    "user": {
      "imsUserId": "933E1F8A631CAA0F0A495E53@80761f6e631c0c7d495fb3.e",
      "principalId": "xxx@adobe.com",
      "displayName": "First LastName",
    },
    "path": "/content/dam/wknd-shared/en/adventures/beervana-portland/beervana-in-portland",
    "model": {
      "id": "/conf/wknd-shared/settings/dam/cfm/models/adventure"
    },
    "id": "9a2d3e6a-efda-4079-a86e-0ef2ede692da",
    "properties": [
      {
        "name": "groupSize",
        "changeType": "modified"
      }
    ]
  },
  "event_id": "a0f3fb7d-b02c-4612-aac6-e472b80af793",
  "recipient_client_id": "f51ea733ba404db299fefbf285dc1c42"
}

Vous constatez que les détails de l’événement AEM disposent de toutes les informations nécessaires pour traiter l’événement dans le webhook. Par exemple, le type d’événement (type), la source de l’événement (source), l’identifiant de l’événement (event_id), l’heure de l’événement (time) et les données de l’événement (data).

Ressources supplémentaires

recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69