2017-06-06 2 views
2

J'ai donc créé un webhook dans le tableau de bord Contentful, qui se déclenche lorsqu'une entrée est publiée ou supprimée et fonctionne comme elle le devrait. Cependant, je souhaite être en mesure de publier des entrées via l'API JavaScript de gestion de contenu, sans déclencher le webhook. Y a-t-il des mesures que je peux prendre pour rendre cela possible?Contentful: empêche le déclenchement du webhook lors de l'utilisation de Content Management API

Répondre

2

Malheureusement, il n'y a aucune différence si une entrée est publiée directement via l'API ou l'application Web. L'application Web appelle simplement l'API sous le capot.

Ce qui peut être possible est d'inspecter l'entrée publiée dans le hook Web et d'évaluer si le code doit être exécuté ou non. Peut-être en définissant un champ masqué lors de la publication via l'API directement.

Par exemple que vous avez un champ publishedThroughAPI, vous assurez-vous que ce champ est omis de l'API de livraison et non modifiable: enter image description here

mis ce champ à vrai juste avant la publication par l'API JavaScript et inspectez cette champ dans votre webhook et simplement revenir hors du crochet si le champ est défini sur true.

Le webhook recevra une charge contenant votre entrée publiée. Fondamentalement, la même charge utile que pour une demande normale avec la différence qu'elle contiendra tous les paramètres régionaux. Voici un petit exemple:

{ 
    "sys": { 
     //System meta data, created at, published at etc. 
    }, 
    "fields": { 
     //All fields of the entry. 
     "title": { 
      "en-US": "English title", 
      "sv-SE": "Swedish title" 
     }, 
     "publishedThroughAPI": { 
      "en-US": true, 
      "sv-SE": true 
     } 
    } 
} 
+0

Tout cela est parfaitement logique, mais comment puis-je savoir quels paramètres/enregistrements sont envoyés au webhook? –

+0

L'entrée publiée est envoyée en tant que données utiles au webhook. Mise à jour de ma réponse avec un exemple. – Robban

+0

Existe-t-il un moyen d'extraire la charge utile avec PHP? –