Guida pratica: Autorizzazione
Guida pratica: Autorizzazione
Introduzione
Questa guida illustra il processo di autenticazione e autorizzazione per i dispositivi Camera to Cloud (C2C) su un progetto Frame.io. Esploreremo sia il metodo standard di inserimento manuale del codice sia l’approccio avanzato di associazione tramite codice QR per un’esperienza utente ottimale.
Cosa serve?
Esamina la guida introduttiva all’implementazione se non l’hai già fatto. Il nostro team dovrebbe averti fornito un client_secret per identificare la tua integrazione. In caso contrario, consulta questa introduzione all’ecosistema C2C e contatta il nostro team.
Prerequisiti per l’associazione mediante URL e codice QR
Per implementare l’associazione mediante URL e codice QR, assicurati di soddisfare questi requisiti:
- Compatibilità del dispositivo: verifica che il dispositivo supporti la generazione di URL e codici QR durante il processo di associazione.
Guida al flusso di autorizzazione
Per comprendere il flusso di autorizzazione dal punto di vista dell’utente, consulta queste risorse:
- Articolo dell’assistenza per aggiungere nuovi dispositivi.
- Video didattico su come autorizzare un Teradek Cube.
Questo processo di autorizzazione riduce al minimo i requisiti di implementazione. Non è necessario:
- Reindirizzare ai browser web (se non si usa l’associazione tramite codice URL)
- Gestire l’autenticazione dell’utente Frame.io
- Presentare interfacce per selezionare gli account o i progetti
- Sviluppare componenti UI complessi oltre alle visualizzazioni di informazioni di base
Migliorare l’esperienza utente con l’associazione mediante codice URL
Gli utenti moderni si aspettano interazioni efficienti con i dispositivi. Benché l’attuale processo di associazione manuale funzioni adeguatamente, può essere ottimizzato.
Implementando l’associazione mediante URL e codice QR, così come accade per servizi di streaming come Netflix o Disney+, possiamo semplificare notevolmente il processo, ridurre al minimo gli errori di input e diminuire i tempi di associazione.
Identificazione del dispositivo (client_id)
Ogni dispositivo fisico richiede un identificatore univoco per il tracciamento della connessione all’interno del progetto di un utente.
Per i dispositivi, questo identificatore è il client_id, che è essenziale durante l’autorizzazione. Durante l’implementazione, prendi in considerazione le fonti appropriate per l’identificatore, ad esempio numeri di serie del dispositivo, UUID o altre stringhe univoche. Se stai eseguendo l’integrazione su un dispositivo Apple, ti consigliamo di usare un UUID persistente univoco che sia coerente anche dopo il riavvio del dispositivo. Fai attenzione alle informazioni di identificazione personale. Gli indirizzi e-mail degli utenti non sono valori appropriati per il client_id.
Inoltre, assicurati di controllare l’identificatore. Gli indirizzi MAC del dispositivo non sono adatti in quanto non sono di proprietà del tuo software e potrebbero costituire informazioni di identificazione personale.
Se hai bisogno di indicazioni per selezionare un identificatore appropriato, il nostro team può aiutarti a determinare un valore adatto che semplifichi l’integrazione.
Passaggio 1: richiedi un codice dispositivo
Per iniziare l’implementazione, richiedi un codice dispositivo tramite l’endpoint /v2/auth/device/code:
Metodo di associazione tradizionale
Abilitazione dell’associazione mediante codice URL
Per l’associazione con codice URL, modifica la chiamata API con intestazioni aggiuntive:
Nota: questi endpoint di autenticazione accettano esclusivamente dati di modulo, non JSON. Dopo l’autenticazione, gli altri endpoint accetteranno i payload JSON, ma gli endpoint di autenticazione rifiuteranno le richieste JSON.
Parametri payload
-
client_id: l’identificatore univoco per il tuo dispositivo fisico. Deve essere univoco, ad esempio un numero di serie o UUID.
-
client_secret: fornito dall’assistenza di Frame.io per identificare il modello del tuo dispositivo. Questo valore riservato non deve essere accessibile dagli utenti e deve essere crittografato quando viene archiviato.
-
scope: le autorizzazioni richieste, separate da spazi. I dispositivi possono richiedere:
-
asset_create: abilita la creazione e il caricamento delle risorse. *offline: consente di aggiornare l’autorizzazione tramite un token di aggiornamento. Senza questo ambito, gli utenti dovrebbero autorizzare nuovamente il dispositivo ogni 8 ore alla scadenza dei token di autorizzazione.
Nelle implementazioni pratiche, i dispositivi richiedono solitamente entrambi gli ambiti.
Informazioni sulla risposta API
La richiesta genera una risposta simile a:
Risposta di associazione tradizionale
Risposta di associazione URL
Spiegazione della risposta
- device_code: questo identificatore interno deve rimanere nascosto agli utenti e identifica la richiesta di autorizzazione durante il polling.
- expires_in: il periodo di validità del codice in secondi.
- interval: l’intervallo di polling consigliato in secondi.
- name: l’identificatore del dispositivo che si connette.
- user_code: il codice a sei cifre per l’inserimento manuale in Frame.io per l’associazione del dispositivo.
- verification_uri: l’URL di base per l’inserimento manuale quando la scansione QR non è disponibile.
- verification_uri_complete: l’URL completo contenente il codice di associazione, da usare per creare un link ipertestuale all’interno di un’app mobile o per generare codici QR in modo da semplificare la navigazione dell’utente verso l’interfaccia di associazione.
Mostrare il codice QR all’utente
Usa verification_uri_complete per generare e visualizzare un codice QR sullo schermo del dispositivo affinché l’utente lo scansioni, in modo da consentire un’associazione efficiente.
Esempio: schermata del dispositivo con codice QR visualizzato
Fornisci sempre opzioni delle opzioni alternative: visualizza user_code e verification_uri per l’inserimento manuale nei casi in cui la scansione QR non è possibile. In alternativa, valuta la possibilità di mostrare il verification_uri come codice QR statico per la scansione da dispositivo mobile. Per le integrazioni di app mobili, includi verification_uri_complete come link ipertestuale toccabile poiché gli utenti non possono scansionare codici QR dal dispositivo che esegue l’app.
Passaggio 2: polling dell’autorizzazione utente
Dopo aver fornito il codice di associazione o il codice URL, verifica il valore inserito dall’utente con questa richiesta:
Parametri payload
- client_id: lo stesso identificatore utilizzato nel passaggio 1.
- device_code: il valore
device_coderestituito in precedenza. - grant_type: l’identificatore del tipo di concessione OAuth, che è sempre
urn:ietf:params:oauth:grant-type:device_codeper questa implementazione.
I tentativi di polling iniziali in genere restituiscono:
Questo errore non irreversibile indica che l’utente non ha completato l’inserimento del codice. Continua il polling fino al completamento.
Nota per le app iOS: iOS: se l’utente passa all’app Frame.io per inserire il codice di associazione, la tua app potrebbe passare in background. Quando torna attiva, ad esempio tramite applicationDidBecomeActive, riprendi il polling in modo che il flusso di autorizzazione possa proseguire senza richiedere una nuova procedura di associazione.
Se ricevi:
Il codice è scaduto prima dell’inserimento da parte dell’utente. Genera un nuovo codice o codice QR tramite il passaggio 1, mostralo all’utente e riprendi il polling.
Un’autorizzazione riuscita produce:
Complimenti per aver autorizzato il tuo dispositivo Camera to Cloud!
Esaminiamo questa risposta:
- access_token: le tue credenziali di autenticazione per l’accesso al backend Frame.io, richieste nelle intestazioni per le future richieste API.
- expires_in: il periodo di validità del token di accesso in secondi, dopo il quale è necessario l’aggiornamento.
- refresh_token: utilizzato per la gestione del token di accesso, principalmente per l’aggiornamento dell’autorizzazione ma applicabile anche per la revoca.
- token_type: è sempre
bearerper le implementazioni dell’API C2C; non richiede alcuna azione.
Abbinamento dei passaggi
Ora implementiamo queste chiamate API in uno pseudocodice simile a Python, gestendo la potenziale scadenza del codice dispositivo:
Nota: l’outer loop gestisce i casi in cui i codici di associazione scadono e sono necessari nuovi codici.
Come passaggio finale, recupera e visualizza le informazioni del progetto da Frame.io per confermare che l’associazione al progetto previsto sia riuscito. Vedremo come farlo nell’esercitazione successiva.
Crea e visualizza codici QR per l’associazione
Durante l’implementazione dell’associazione tramite URL/codice QR, dovrai generare un codice QR dal valore verification_uri_complete nella risposta. Ecco alcuni esempi che utilizzano librerie popolari in diversi linguaggi di programmazione:
Esempio Python con qrcode
Esempio JavaScript (web o Electron)
Esempio Android (Java)
Esempio iOS (Swift)
Best practice per la visualizzazione del codice QR
Quando implementi l’associazione tramite codice QR, considera queste linee guida per offrire la migliore esperienza agli utenti:
-
Dimensioni ottimali: visualizza codici QR di almeno 200-250 px quadrati per una scansione affidabile.
-
Contrasto: assicurati che ci sia un contrasto elevato tra codice QR e sfondo (nero su bianco è l’ideale).
-
Correzione degli errori: usa livelli di correzione degli errori moderati (L o M) per bilanciare densità del codice e affidabilità.
-
Istruzioni chiare: fornisci indicazioni chiare su come eseguire la scansione del codice, ad esempio “Scansiona questo codice con la fotocamera dello smartphone per associare il dispositivo.”
-
Opzioni multiple: fornisci sempre il codice di associazione manuale insieme al codice QR come alternativa:
-
Link ipertestuale per app mobili: se la tua integrazione è un’app mobile, includi
verification_uri_completecome link toccabile, poiché gli utenti non possono scansionare un codice QR dallo stesso dispositivo. -
Test: testa i codici QR con vari dispositivi e condizioni di illuminazione per garantire una scansione affidabile.

Risoluzione dei problemi
Se riscontri problemi, consulta questi scenari e soluzioni comuni:
-
Pulsante “Collega dispositivo” non visibile: quando accedi al pannello di gestione C2C, questo potrebbe indicare:
-
Autorizzazioni insufficienti: se visualizzi un messaggio relativo alle autorizzazioni, contatta il tuo account manager per modificare le autorizzazioni o assegnare un ruolo appropriato. * Connessione al dispositivo esistente: dopo aver collegato un dispositivo, il pulsante principale “Aggiungi nuovo dispositivo” viene sostituito da un menu con tre puntini nell’angolo superiore destro del pannello Connessioni C2C.
-
Errore di client non valido: una risposta
invalid_clientindica una mancata corrispondenza delle informazioni del dispositivo, solitamente dovuta a unclient_secreterrato. -
Errore di richiesta non valida: una risposta
bad_requestindica che il formato dei dati della richiesta è errato.Verifica i nomi dei campi e assicurati che tutti i campi obbligatori siano inclusi.
Se il problema non è trattato qui, condividi la tua esperienza per aiutarci a migliorare questa sezione di risoluzione dei problemi.
Passaggi successivi
Ti invitiamo a contattare il nostro team e a procedere alla guida sulla gestione delle autorizzazioni. Facci avere il tuo feedback!