Comment octroyer des autorisations
Présentation
Ce guide présente le processus d’authentification et d’autorisation pour les appareils Camera to Cloud (C2C) sur un projet Frame.io. Nous explorerons à la fois la méthode standard de saisie manuelle de code et l’approche améliorée de couplage par code QR pour une expérience client optimale.
De quoi ai-je besoin ?
Si ce n’est pas déjà fait, consultez le guide Avant de commencer l’implémentation. Vous devriez avoir reçu une valeur client_secret de notre équipe pour identifier votre intégration. Si ce n’est pas le cas, consultez cette introduction au réseau C2C et contactez notre équipe.
Conditions préalables pour le couplage par URL et code QR
Pour mettre en œuvre le couplage par URL et code QR, vérifiez que vous respectez les exigences suivantes :
- Compatibilité de l’appareil : vérifiez que l’appareil prend en charge la génération d’URL/code QR pendant le processus de couplage.
Exploration du flux d’autorisation
Pour comprendre le flux d’autorisation du point de vue de l’utilisateur, consultez ces ressources :
- Article d’aide pour ajouter de nouveaux appareils.
- Vidéo de formation sur l’autorisation d’un Teradek Cube.
Ce processus d’autorisation minimise les exigences d’implémentation. Vous n’aurez pas besoin de :
- rediriger vers les navigateurs web (sauf lors du couplage par code URL) ;
- gérer l’authentification de l’utilisateur Frame.io ;
- présenter les interfaces de sélection de compte/projet ;
- développer des composants d’interface utilisateur complexes au-delà des affichages d’informations de base.
Amélioration de l’expérience client avec le couplage par code URL
Les utilisateurs modernes s’attendent à des interactions efficaces avec les appareils. Bien que le processus de couplage manuel actuel fonctionne correctement, il peut être optimisé.
En implémentant le couplage par URL et code QR (semblable aux services de streaming comme Netflix ou Disney+), nous pouvons considérablement rationaliser le processus, minimiser les erreurs de saisie et raccourcir le temps de couplage.
Identification de l’appareil (client_id)
Chaque appareil physique nécessite un identifiant unique pour le suivi des connexions dans le projet d’un utilisateur.
Pour les appareils, cet identifiant correspond au paramètre client_id, qui est essentiel lors de l’autorisation. Lors de l’implémentation, considérez des sources d’identifiants appropriées telles que les numéros de série d’appareil, les UUID ou d’autres chaînes uniques. Si vous effectuez l’intégration sur un appareil Apple, nous vous recommandons d’utiliser un UUID persistant unique qui reste cohérent lors des redémarrages de l’appareil. Faites preuve de prudence concernant les informations personnellement identifiables. Les adresses e-mail des utilisateurs ne sont pas des valeurs client_id appropriées.
Assurez-vous également de contrôler l’identifiant. Les adresses MAC des appareils ne conviennent pas, car elles n’appartiennent pas à votre logiciel et peuvent constituer des informations personnellement identifiables.
Si vous avez besoin de conseils pour choisir un identifiant approprié, notre équipe peut vous aider à déterminer une valeur adaptée qui simplifie l’intégration.
Étape 1 : demande d’un code d’appareil
Pour commencer l’implémentation, demandez un code d’appareil via le point d’entrée /v2/auth/device/code :
Méthode de couplage traditionnelle
Activation du couplage par code URL
Pour le couplage par code URL, modifiez l’appel API avec des en-têtes supplémentaires :
Remarque : ces points d’entrée d’authentification acceptent exclusivement les données de formulaire, pas JSON. Après l’authentification, les autres points d’entrée accepteront les payloads JSON, mais les points d’entrée d’authentification rejetteront les requêtes JSON.
Paramètres de payload
-
client_id : identifiant unique pour votre appareil physique. Il doit absolument être unique, par exemple un numéro de série ou UUID.
-
client_secret : fourni par le support Frame.io pour identifier votre modèle d’appareil. Cette valeur confidentielle doit rester protégée des utilisateurs et chiffrée lors du stockage.
-
scope : autorisations demandées, séparées par des espaces. Les appareils peuvent demander :
-
asset_create: active la création et le chargement de ressources. *offline: permet l’actualisation de l’autorisation via le jeton d’actualisation. Sans cette portée, les utilisateurs devraient réautoriser leur appareil toutes les 8 heures, car les jetons d’autorisation expirent.
Dans les implémentations pratiques, les appareils demandent généralement les deux portées.
Comprendre la réponse de l’API
La demande génère une réponse semblable à :
Réponse de couplage traditionnel
Réponse de couplage par URL
Décomposition de la réponse
- device_code : cet identifiant interne ne doit pas être visible pour les utilisateurs ; il identifie la demande d’autorisation lors de l’enquête.
- expires_in : période de validité du code en secondes.
- interval : intervalle d’enquête recommandé en secondes.
- name : identifiant de l’appareil de connexion.
- user_code : code à six chiffres pour la saisie manuelle dans Frame.io pour le couplage de l’appareil.
- verification_uri : URL de base pour la saisie manuelle s’il est impossible de scanner le code QR.
- verification_uri_complete : URL complète contenant le code de couplage, destinée aux liens hypertexte dans une application mobile ou à la génération de code QR pour simplifier la navigation utilisateur vers l’interface de couplage.
Affichage du code QR pour l’utilisateur
En utilisant verification_uri_complete, générez et affichez un code QR sur l’écran de l’appareil pour que l’utilisateur puisse le scanner, facilitant ainsi un couplage efficace.
Exemple : écran d’appareil avec code QR affiché
Fournissez toujours des options de secours : affichez les paramètres user_code et verification_uri pour la saisie manuelle lorsque le code QR ne peut pas être scanné. Vous pouvez également afficher le paramètre verification_uri comme un code QR statique pour la numérisation mobile. Pour les intégrations d’application mobile, incluez verification_uri_complete comme un lien hypertexte cliquable, car les utilisateurs ne peuvent pas scanner les codes QR depuis l’appareil exécutant l’application.
Étape 2 : demande d’autorisation utilisateur
Après avoir fourni le code de couplage ou le code URL, vérifiez la saisie utilisateur avec cette requête :
Paramètres de payload
- client_id : même identifiant que celui utilisé à l’étape 1.
- device_code : valeur
device_coderenvoyée précédemment. - grant_type : identifiant de type d’octroi OAuth, toujours
urn:ietf:params:oauth:grant-type:device_codepour cette implémentation.
Les tentatives d’enquête initiales renvoient généralement :
Cette erreur non fatale indique que l’utilisateur n’a pas terminé la saisie du code. Continuez l’enquête jusqu’à la fin.
Remarque pour les appareils iOS : si l’utilisateur bascule vers l’application iOS Frame.io pour saisir le code de couplage, l’application peut passer en arrière-plan. Lorsque l’application redevient active, par exemple dans applicationDidBecomeActive, reprenez l’enquête pour que le flux d’autorisation puisse continuer sans que l’utilisateur ait besoin de redémarrer le couplage.
Si vous recevez :
Le code a expiré avant la saisie utilisateur. Générez un nouveau code/code QR via l’étape 1, présentez-le à l’utilisateur et reprenez l’enquête.
Une autorisation réussie produit :
Votre appareil Camera to Cloud a bien été autorisé !
Examinons cette réponse :
- access_token : vos informations d’identification d’authentification pour l’accès au backend Frame.io, requis dans les en-têtes pour les futures requêtes API.
- expires_in : la période de validité du jeton d’accès en secondes, après laquelle l’actualisation est nécessaire.
- refresh_token : utilisé pour la gestion des jetons d’accès, principalement pour actualiser l’autorisation mais aussi applicable pour la révocation.
- token_type : toujours
bearerpour les implémentations d’API C2C, ne nécessitant aucune action.
Regrouper toutes les étapes
Implémentons maintenant ces appels API en pseudocode de type Python, en gérant l’expiration potentielle du code d’appareil :
Remarque : la boucle externe gère les cas où les codes de couplage expirent et où de nouveaux codes sont requis.
Comme étape finale, récupérez et affichez les informations de projet depuis Frame.io pour confirmer le couplage réussi au projet prévu. Nous aborderons ce point dans le tutoriel suivant.
Création et affichage de codes QR pour le couplage
Lors de l’implémentation du couplage URL/code QR, vous devez générer un code QR à partir de la valeur verification_uri_complete dans la réponse. Voici des exemples utilisant des bibliothèques populaires dans différents langages de programmation :
Exemple Python avec qrcode
Exemple JavaScript (web ou Electron)
Exemple Android (Java)
Exemple iOS (Swift)
Bonnes pratiques pour l’affichage de codes QR
Lors de l’implémentation du couplage par code QR, tenez compte de ces recommandations pour une expérience client optimale :
-
Taille optimale : affichez des codes QR d’au moins 200-250 pixels carrés pour une lecture fiable.
-
Contraste : assurez-vous d’un contraste élevé entre le code QR et l’arrière-plan (noir sur blanc est idéal).
-
Correction d’erreurs : utilisez des niveaux de correction d’erreurs modérés (L ou M) afin de trouver un juste équilibre entre la densité du code et sa fiabilité.
-
Instructions claires : fournissez des instructions claires sur la façon de scanner le code, par exemple « Scannez ce code avec l’appareil photo de votre smartphone pour coupler votre appareil. »
-
Options multiples : fournissez toujours le code de couplage manuel avec le code QR comme solution de secours :
-
Lien hypertexte pour Mobile Apps : si votre intégration est une application mobile, incluez
verification_uri_completecomme lien cliquable, car les utilisateurs ne peuvent pas scanner un code QR depuis le même appareil. -
Tests : testez les codes QR avec différents appareils et conditions d’éclairage pour assurer une lecture fiable.

Résolution des problèmes
Si vous rencontrez des problèmes, consultez les scénarios courants suivants et leurs solutions :
-
Bouton « Connecter un appareil » non visible : lors de l’accès au panneau de gestion C2C, cette erreur peut indiquer :
-
Autorisations insuffisantes : si un message d’autorisations s’affiche, contactez le gestionnaire de compte pour ajuster les autorisations ou attribuer un rôle approprié. * Connexion d’appareil existante : après avoir connecté un appareil, le bouton principal « Ajouter un nouvel appareil » est remplacé par un menu à trois points dans le coin supérieur droit du panneau Connexions C2C.
-
Erreur de client non valide : une réponse
invalid_clientindique une incompatibilité des informations de l’appareil, généralement due à un paramètreclient_secretincorrect. -
Erreur de demande incorrecte : une réponse
bad_requestindique des données de demande incorrectement formées. Vérifiez les noms des champs et assurez-vous que tous les champs requis sont inclus.
Si votre problème n’est pas traité ici, partagez votre expérience afin que nous puissions améliorer cette section de résolution des problèmes.
Étapes suivantes
Nous vous invitons à contacter notre équipe et à consulter le guide de gestion des autorisations. Nous attendons vos commentaires avec impatience !