Présentation des webhooks
Présentation des webhooks
Exemple d'application
Si vous souhaitez créer votre propre consommateur pour les webhooks Frame.io, n’hésitez pas à récupérer et étendre notre exemple d’application sur Github.
Introduction
Les webhooks permettent de tirer profit des événements qui se produisent dans Frame.io en les transformant en notification qui peuvent être envoyées à des systèmes externes pour traitement, rappels d’API et, au final, automatisation de workflow.
Configuration
Les webhooks peuvent être configurés dans la zone Webhooks de notre site développeur. Un webhook nécessite :
- Nom — Sera affiché uniquement sur le site développeur.
- URL — Où livrer les événements.
- Équipe — À quelle équipe ce webhook sera ajouté.
- Événements — Quel événement ou quels événements doivent déclencher le webhook.
Événements pris en charge
Un seul webhook peut s’abonner à n’importe quel nombre des événements suivants :
Projets
Ressources
Contrôle de version des asset
Lorsque l’événement asset.versioned se déclenche, vous recevrez une charge utile avec l’ID de l’asset qui a fait l’objet d’un contrôle de version, et non la pile de versions elle-même. Donc, si vous comptez transmettre cet id à une autre fonction en pensant qu’il s’agit de l’ID de la pile de versions, vous devrez d’abord rechercher et localiser cette ressource « parent » particulière.
Mises à jour des libellés d'asset
L’événement asset.label.updated ne se déclenchera pas lorsque le libellé de statut est modifié via un appel PUT au point d’entrée /v2/assets/:id via l’API publique (BES-408). Il se déclenchera cependant lorsque le libellé de statut est mis à jour à l’aide d’applications et d’intégrations Frame.io natives (web, iOS, Premiere, After Effects, FCPX, etc.).
Commentaires
Liens de révision
Collaborateurs
Membres de l’équipe
Charge utile
Frame.io fournit une charge utile JSON au point d’entrée webhook spécifié.Voici un exemple de charge utile pour un événement asset.created :
Toutes les charges utiles contiennent un champ type, indiquant le type d’événement qui se produit, ainsi qu’un objet resource.L’objet resource spécifie le type et l’id de la ressource liée à cet événement.Dans l’exemple ci-dessus d’un événement asset.created, il s’agirait de l’id pour le fichier nouvellement créé.De plus, les objets user et team sont inclus.Ils font référence à l’utilisateur qui a déclenché l’événement et au contexte d’équipe pour la ressource.En dehors du contexte immédiat de l’utilisateur et de l’équipe, nous n’incluons aucune information supplémentaire sur la ressource abonnée. Si votre application nécessite des informations ou un contexte supplémentaires, nous recommandons d’utiliser notre API HTTP pour effectuer des requêtes de suivi.
Nouvelles tentatives
Si une erreur (réponse avec un code d’état différent de 200) ou un délai d’expiration se produit lors de la diffusion du webhook vers votre service, la charge utile fera l’objet de trois nouvelles tentatives, pour un total de quatre tentatives de diffusion.
Sécurité
Par défaut, tous les webhooks sont fournis avec une clé de signature. Ceci n’est pas configurable. Cette clé peut être utilisée pour vérifier que la requête provient de Frame.io.
Vérifier les signatures de webhook
Pour protéger une intégration contre les attaques man-in-the-middle et de relecture, il est essentiel de vérifier les signatures de webhook. La vérification garantit que les charges utiles de webhook ont effectivement été envoyées par Frame.io et que le contenu de la charge utile n’a pas été modifié lors du transport.
Inclus dans la requête POST se trouvent les en-têtes suivants :
Suivez ces étapes pour vérifier la signature :
- Extrayez la signature des en-têtes HTTP
- Créez un message à signer en combinant la version, l’heure de diffusion et le corps de la requête :
v0:timestamp:body - Calculez la signature HMAC SHA256 en utilisant votre secret de signature. Remarque : La signature fournie est préfixée par
v0=. Actuellement, Frame.io n’a que cette version pour signer les requêtes. Assurez-vous que ce préfixe est ajouté au début de la signature calculée. - Comparez !