Présentation des actions personnalisées
Présentation des actions personnalisées
<Info title=“Exemples d’applications”>
Si vous souhaitez créer votre propre application d’actions personnalisées, nos exemples d’applications vous aideront à commencer :
</Info>
Les actions personnalisées vous permettent d’intégrer des éléments directement dans Frame.io sous forme de composants d’interface utilisateur programmables. Cela permet toute une classe de processus qui peuvent être déclenchés par les utilisateurs dans l’application, en tirant profit du même routage d’événements sous-jacent que les Webhooks. Actuellement, les actions personnalisées sont disponibles pour les ressources et s’affichent dans le menu déroulant contextuel / clic droit disponible sur toute ressource, comme illustré dans l’image ci-dessous. <img alt=“actions-1” src=“file:docs/pages/v2/images/actions-1.png”>
Un asset est une représentation robuste d’un fichier dans S3, et de son contexte dans Frame.io. Cela inclut les transcodages, le contexte utilisateur/équipe/projet et les métadonnées. Lorsqu’un utilisateur clique sur une action personnalisée sur un asset, Frame.io enverra une charge utile à une URL que vous fournissez. L’application de réception peut alors répondre avec un code d’état HTTP pour simplement accuser réception, ou peut répondre avec un rappel personnalisé qui peut afficher une interface utilisateur supplémentaire dans Frame.io.
Configurez votre action personnalisée
<Info title=“Vérifiez vos autorisations”>
Des autorisations de gestionnaire d’équipe sont nécessaires pour créer des actions client pour une équipe. Demandez à l’administrateur de modifier les autorisations si vous n’avez pas accès.
</Info> Des actions personnalisées peuvent être configurées dans la zone Actions personnalisées de developer.frame.io. Une action nécessite :
Cliquez sur - Ce qu’il y a dans la charge utile que vous recevez de Frame.io
Lorsque l’utilisateur clique sur votre action personnalisée, une charge utile sera envoyée à l’URL que vous avez spécifiée dans le champ URL.
Vous pouvez utiliser cette charge utile pour identifier :
- Laquelle de vos actions personnalisées a été cliquée
- Quelle ressource a été cliquée
- Quel utilisateur a effectué l’action
<Info title=“À propos des interactions”>
Le interaction_id est fourni comme identifiant unique pour vous aider à suivre l’évolution de l’interaction dans le temps. Si vous n’avez pas besoin de répondre à l’utilisateur, renvoyez simplement un code d’état 200, et c’est terminé. Bien qu’optionnel, nous recommandons d’inclure quelques informations sur le résultat de l’action, comme un simple message de réussite ou une alerte d’erreur. Les actions personnalisées prennent en charge les rappels de messages.
</Info>
<Info title=“Nouvelles tentatives et délais d’expiration”>
Notre application attend une réponse en moins de 5 secondes et tentera de relancer jusqu’à 5 fois en attendant une réponse réussie. Vous devriez idéalement répondre immédiatement et effectuer les actions de manière asynchrone après déclenchement via une action personnalisée.
</Info>
Créer un rappel de message
Dans votre réponse HTTP à l’événement webhook, vous pouvez renvoyer un objet JSON décrivant un message qui sera renvoyé à l’utilisateur initiateur dans l’interface utilisateur Frame.io. Si vous souhaitez essayer de créer un message et voir à quoi il ressemblera, vous pouvez essayer notre Custom Action Builder, qui vous permet de configurer des rappels de messages ou des formulaires et voir comment ils apparaîtraient dans l’app web Frame.io.
Voici un exemple d’objet :
Cela affichera une alerte à l’utilisateur qui ressemble à ceci :
<img alt=“actions-3” src=“file:docs/pages/v2/images/actions-3.png”>
Les messages sont un moyen simple de boucler le cycle de vie de l’action d’une manière qui fournit un contexte variable à l’utilisateur agissant, sans lui demander de changer de contexte.
Cela suffit à satisfaire de nombreux cas d’utilisation, mais parfois la charge utile initiale et les appels ultérieurs à l’API Frame.io ne fourniront pas suffisamment de contexte pour l’application réceptrice. Pour ces scénarios, nous prenons également en charge les Form Callbacks.
Créer un rappel de formulaire
Disons que vous avez besoin de plus d’informations avant de commencer votre processus. Par exemple, vous pourriez charger du contenu vers un système qui nécessite des détails et paramètres supplémentaires. Vous pouvez « décrire » un formulaire dans votre réponse, que l’utilisateur verra réellement ! Et qu’il remplira ! Et il vous sera renvoyé directement !
Voici un exemple de formulaire qui générera un formulaire dans l’interface utilisateur Frame.io que l’utilisateur agissant initial peut remplir et soumettre :
<img alt=“actions-form” src=“file:docs/pages/v2/images/actions-form.png”>
Lorsque l’utilisateur soumet le formulaire, vous recevez un événement sur la même URL que le POST initial :
Tous les champs personnalisés que vous avez ajoutés sur votre formulaire apparaissent dans la section data de la charge utile JSON envoyée par Frame.io Utilisez interaction_id pour mapper la demande initiale et ces nouvelles données de formulaire. Et encore une fois, si vous le souhaitez, vous pouvez répondre avec un message (ou même un autre formulaire !).
En enchaînant les Actions, les Formulaires et les Messages, vous pouvez programmer efficacement des workflow d’asset complets dans Frame.io avec la logique métier d’un système externe.
Faites preuve d’imagination ! Tout est possible.
Détails du formulaire
Comme les messages, les Formulaires prennent en charge les attributs title et description qui s’affichent en haut du Formulaire. En plus de cela, chaque champ de formulaire accepte les attributs de base suivants :
type— Indique à l’interface utilisateur Frame.io quel type de données attendre, et quel composant et rendu utiliser.label— Apparaît sur l’interface utilisateur comme l’en-tête au-dessus du champ.name— Clé par laquelle le champ sera identifié sur la charge utile ultérieure.value— Valeur avec laquelle pré-remplir le champ.
Types de champs pris en charge
Champ de texte
Un simple champ de texte sans paramètres supplémentaires.
Zone de texte
Une simple zone de texte sans paramètres supplémentaires.
Select list
Defines a picklist that the user can choose from. Must include an options list, each member of which should include a human-readable name, and a machine-parseable value.
**Liste de sélection** Définit une liste de choix dans laquelle l'utilisateur peut faire une sélection. Doit inclure une listeoptions, dont chaque membre doit inclure un namelisible par l'humain, et unevalue` analysable par la machine. ```json
{
“type”: “select”,
“label”: “Captions”,
“name”: “captions”,
“value”: “off”,
“options”: [
{
“name”: “Désactivé”,
“value”: “off”
},
{
“name”: “Activé”,
“value”: “on”
}
]
}