Panoramica delle azioni personalizzate
App di esempio
Le app di esempio sono utili per iniziare a creare un’app di azioni personalizzate:
Le azioni personalizzate consentono di creare integrazioni direttamente in Frame.io come componenti programmabili dell’interfaccia utente.In questo modo viene abilitata un’intera classe di flussi di lavoro che possono essere attivati dagli utenti all’interno dell’app, sfruttando lo stesso indirizzamento di eventi sottostante dei webhook.Attualmente, le azioni personalizzate sono disponibili per le risorse e vengono visualizzate nel menu a discesa contestuale disponibile su qualsiasi risorsa, come mostrato nell’immagine seguente. 
Una risorsa è una rappresentazione completa di un file in S3 e del suo contesto in Frame.io.Include transcodifiche, contesto di utente/team/progetto e metadati.Quando un utente fa clic su un’azione personalizzata in una risorsa, Frame.io invia un payload a un URL che fornisci. L’applicazione ricevente può quindi rispondere con un codice di stato HTTP per riconoscere semplicemente la ricezione oppure può rispondere con un callback personalizzato che permette di mostrare un’interfaccia utente aggiuntiva in Frame.io.
Configura un’azione personalizzata
Verifica le autorizzazioni
Sono richieste autorizzazioni come team manager per creare le azioni personalizzate per un team. Chiedi al tuo amministratore di modificare le tue autorizzazioni se non hai accesso.
Le azioni personalizzate possono essere configurate nell’area Azioni personalizzate di developer.frame.io. Un’azione richiede:
Clic - Cosa contiene il payload ricevuto da Frame.io
Quando l’utente fa clic sull’azione personalizzata, un payload verrà inviato all’URL specificato nel campo URL.
Puoi utilizzare questo payload per identificare:
- Su quale delle tue azioni personalizzate è stato fatto clic
- Su quale risorsa è stato fatto clic
- Quale utente ha eseguito l’azione
Informazioni sulle interazioni
L’interaction_id viene fornito come identificatore unico per aiutarti a tenere traccia dell’interazione mentre si evolve nel tempo. Se non è necessario rispondere all’utente, restituisce semplicemente un codice di stato 200. Sebbene sia facoltativo, consigliamo di includere alcune informazioni sul risultato dell’azione, come un semplice messaggio di operazione riuscita o un avviso di errore. Le azioni personalizzate supportano i callback dei messaggi.
Nuovi tentativi e timeout
L’applicazione si aspetta una risposta in meno di 5 secondi e tenterà di riprovare fino a 5 volte in attesa di una risposta riuscita. Dovresti rispondere immediatamente e, idealmente, eseguire qualsiasi azione in modo asincrono dopo l’attivazione tramite un’azione personalizzata.
Crea un callback del messaggio
Nella risposta HTTP all’evento webhook, puoi restituire un oggetto JSON che descrive un messaggio che verrà restituito all’utente che ha avviato l’azione nell’interfaccia utente di Frame.io. Se vuoi provare a creare un messaggio e vedere come sarà, puoi provare il nostro strumento di creazione di azioni personalizzate, che permette di impostare callback di messaggi o moduli e vedere come apparirebbero nella web app di Frame.io.
Ecco un oggetto di esempio:
Questo mostrerà all’utente un avviso di questo tipo:
I messaggi sono un modo semplice per chiudere il ciclo di vita dell’azione in modo da fornire un contesto variabile all’utente attivo, senza chiedergli di cambiare contesto.
Ciò è sufficiente per molti casi d’uso, ma a volte il payload iniziale e le successive chiamate all’API di Frame.io non forniranno un contesto sufficiente per l’applicazione ricevente. In questi scenari, supportiamo anche i callback dei moduli.
Crea un callback del modulo
Supponiamo che tu abbia bisogno di maggiori informazioni prima di iniziare il processo. Ad esempio, potresti caricare dei contenuti in un sistema che richiede dettagli e impostazioni aggiuntive. Nella risposta puoi “descrivere” un modulo che l’utente vedrà effettivamente. Potrà compilarlo e ti verrà rispedito subito!
Ecco un esempio che mostra un modulo nell’interfaccia utente di Frame.io che l’utente iniziale può compilare e inviare:
Quando l’utente invia il modulo, riceverai un evento sullo stesso URL del POST iniziale:
Tutti i campi personalizzati aggiunti al modulo appaiono nella sezione data del payload JSON inviato da Frame.io. Usa interaction_id per mappare la richiesta iniziale e questi nuovi dati del modulo. Se vuoi, puoi rispondere con un messaggio o anche con un altro modulo!
Concatenando azioni, moduli e messaggi, puoi programmare in modo efficace interi flussi di lavoro delle risorse in Frame.io con logica di business da un sistema esterno.
Fai volare l’immaginazione! Non ci sono limiti.
Dettagli del modulo
Come per i messaggi, i moduli supportano gli attributi title e description che vengono visualizzati nella parte superiore del modulo. Oltre a questo, ogni campo del modulo accetta i seguenti attributi di base:
Type:: indica all’interfaccia utente di Frame.io che tipo di dati aspettarsi e quale componente e rendering.label: appare nell’interfaccia utente come intestazione sopra il campo.name: chiave con cui il campo verrà identificato nel payload successivo.value: valore con cui precompilare il campo.
Tipi di campi supportati
Campo di testo
Un semplice campo di testo senza parametri aggiuntivi.
Area di testo
Una semplice area di testo senza parametri aggiuntivi.
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.
**Elenco di selezione** Definisce un elenco di selezione dal quale l'utente può scegliere. Deve includere un elenco di opzioni (options), ognuna delle quali deve includere un nome (name) leggibile dall'uomo e un valore (value`) analizzabile dalla macchina.
Azioni personalizzate e modello di autorizzazioni di Frame.io
I webhook e le azioni personalizzate seguono un modello di autorizzazioni speciale: appartengono a un team, non a un utente specifico che fa parte di un team o di un account. Ciò significa che:
- Un amministratore o un team manager può creare un’azione personalizzata in un team.
- Un amministratore o un team manager può modificare o eliminare un’azione personalizzata che esiste in un team. Una volta apportata la modifica, tutti gli utenti potranno vederne immediatamente il risultato.
Sicurezza
Per impostazione predefinita, per tutte le azioni personalizzate viene generata una chiave di firma durante la creazione. Non è configurabile.Questa chiave può essere utilizzata per verificare che la richiesta provenga da Frame.io.
Verifica
Nella richiesta POST sono inclusi i seguenti elementi
Verifica della firma
- Estrai la firma dalle intestazioni HTTP
- Crea un messaggio da firmare combinando la versione, l’ora di consegna e il corpo della richiesta
v0:timestamp:body
- Calcola la firma HMAC SHA256 utilizzando il secret di firma.
- Nota: la firma fornita ha il prefisso
v0=. Al momento Frame.io ha solo questa versione per firmare le richieste.Dovrai aggiungere questo prefisso alla firma calcolata.
- Confronta!