Guía práctica: Autorizar
Guía práctica: Autorizar
Introducción
En esta guía se explica el proceso de autenticación y autorización para dispositivos Camera to Cloud (C2C) en un proyecto de Frame.io. Exploraremos tanto el método estándar de entrada manual de código como el enfoque mejorado de emparejamiento con código QR para ofrecer una experiencia de usuario óptima.
¿Qué necesitaré?
Revise la guía Antes de empezar la implementación si aún no lo ha hecho. Debería haber recibido un client_secret de nuestro equipo para identificar su integración. Si no es así, consulte esta introducción al ecosistema de C2C y póngase en contacto con nuestro equipo.
Requisitos previos para el emparejamiento con código URL y QR
Para implementar el emparejamiento con código URL y QR, asegúrese de cumplir estos requisitos:
- Compatibilidad del dispositivo: Verifique que su dispositivo sea compatible con la generación de código URL/QR durante el proceso de emparejamiento.
Descripción detallada del flujo de autorización
Para entender el flujo de autorización desde la perspectiva del usuario, consulte estos recursos:
- Artículo de asistencia para añadir dispositivos nuevos.
- Vídeo de formación sobre la autorización de un dispositivo Teradek Cube.
Este proceso de autorización minimiza los requisitos de implementación. No necesitará:
- Redirigir a exploradores web (a menos que use el emparejamiento con código URL)
- Gestionar la autenticación de usuarios de Frame.io
- Presentar interfaces de selección de cuenta/proyecto
- Desarrollar componentes complejos de la IU más allá de las pantallas básicas de información
Mejora de la experiencia del usuario mediante el emparejamiento con código URL
Los usuarios modernos esperan interacciones eficientes con los dispositivos. Aunque el proceso actual de emparejamiento manual funciona adecuadamente, se puede optimizar.
Al implementar el emparejamiento con código URL y QR, similar al que se usa en los servicios de streaming como Netflix o Disney+, podemos optimizar significativamente el proceso, minimizar los errores en la entrada de código y reducir el tiempo que dura el emparejamiento.
Identificación del dispositivo (client_id)
Cada dispositivo físico requiere un identificador único para hacer el seguimiento de las conexiones dentro del proyecto de un usuario.
Para los dispositivos, este identificador es el client_id, que es esencial durante la autorización. Al realizar la implementación, puede utilizar las fuentes de identificador apropiadas, como los números de serie del dispositivo, los UUID u otras cadenas únicas. Si está realizando la integración en un dispositivo Apple, recomendamos usar un UUID persistente único que sea coherente durante los reinicios del dispositivo. Tenga cuidado con la información de identificación personal. Las direcciones de correo electrónico del usuario no son valores apropiados de client_id.
Además, asegúrese de que controla el identificador. Las direcciones MAC del dispositivo no son adecuadas ya que no son propiedad de su software y pueden constituir información de identificación personal.
Si necesita orientación para seleccionar un identificador apropiado, nuestro equipo puede ayudarle a determinar un valor adecuado que simplifique la integración.
Paso 1: Solicitar un código de dispositivo
Para comenzar la implementación, solicite un código de dispositivo a través del punto final /v2/auth/device/code:
Método de emparejamiento tradicional
Habilitación del emparejamiento con código URL
Para el emparejamiento con código URL, modifique la llamada API con encabezados adicionales:
Nota: Estos puntos finales de autenticación aceptan exclusivamente datos de formulario, no JSON. Después de la autenticación, otros puntos finales aceptarán cargas útiles JSON, pero los puntos finales de autenticación rechazarán las solicitudes JSON.
Parámetros de carga útil
- client_id: El identificador único de su dispositivo físico. Debe garantizarse que sea único, como un número de serie o un UUID.
- client_secret: Lo proporciona el servicio de asistencia de Frame.io para identificar su modelo de dispositivo. Este valor confidencial debe mantenerse protegido de los usuarios y cifrado cuando se almacene.
- scope: Los permisos solicitados, separados por espacios. Los dispositivos pueden solicitar:
* asset_create: Permite la creación y la carga de activos. * offline: Permite la actualización de autorización mediante token de actualización. Sin este ámbito, los usuarios tendrían que volver a autorizar su dispositivo cada 8 horas, ya que los tokens de autorización caducan.
En implementaciones prácticas, los dispositivos normalmente solicitan ambos ámbitos.
Comprensión de la respuesta de la API
La solicitud genera una respuesta similar a la siguiente:
Respuesta de emparejamiento tradicional
Respuesta de emparejamiento con URL
Desglose de la respuesta
- device_code: Este identificador interno debe permanecer oculto e identifica la solicitud de autorización durante el sondeo.
- expires_in: El periodo de validez del código en segundos.
- interval: El intervalo de sondeo recomendado en segundos.
- name: El identificador del dispositivo de conexión.
- user_code: El código de seis dígitos para la entrada manual en Frame.io y realizar el emparejamiento del dispositivo.
- verification_uri: La URL base para la entrada manual si el escaneo del código QR no está disponible.
- verification_uri_complete: La URL completa que contiene el código de emparejamiento y destinada al hipervínculo dentro de una aplicación móvil o generación de código QR para optimizar la navegación del usuario a la interfaz de emparejamiento.
Cómo mostrar el código QR al usuario
Con el verification_uri_complete, genere y muestre un código QR en la pantalla del dispositivo para que el usuario lo escanee, de manera que se facilite un emparejamiento eficiente.
Ejemplo: Pantalla del dispositivo en la que se muestra un código QR
Proporcione siempre opciones de reserva: Muestre el user_code y el verification_uri para facilitar la entrada manual cuando el escaneo del código QR no sea posible. También puede mostrar el verification_uri como un código QR estático para el escaneo móvil. Para integraciones de aplicaciones móviles, incluya el verification_uri_complete como un hipervínculo en el que se puede pulsar, ya que los usuarios no pueden escanear códigos QR desde el dispositivo que ejecuta la aplicación.
Paso 2: Sondear para obtener la autorización del usuario
Después de proporcionar el código de emparejamiento o código URL, verifique la entrada del usuario con esta solicitud:
Parámetros de carga útil
- client_id: El mismo identificador que se ha utilizado en el paso 1.
- device_code: El valor de
device_codedevuelto anteriormente. - grant_type: El identificador del tipo de concesión OAuth, siempre
urn:ietf:params:oauth:grant-type:device_codepara esta implementación.
Los intentos iniciales de sondeo normalmente devuelven:
Este error no grave indica que el usuario no ha completado la entrada de código. Siga con el sondeo hasta que termine.
Nota para dispositivos de la aplicación para iOS: Si el usuario cambia a la aplicación para iOS de Frame.io para introducir el código de emparejamiento, puede que su aplicación pase al segundo plano. Cuando su aplicación vuelva a estar activa, como en applicationDidBecomeActive, reanude el sondeo para que el flujo de autorización pueda continuar sin requerir que el usuario reinicie el emparejamiento.
Si recibe:
El código caducó antes de la entrada del usuario. Genere un código/código QR nuevo a través del paso 1, preséntelo al usuario y reanude el sondeo.
Una autorización correcta produce:
Enhorabuena por autorizar correctamente su dispositivo Camera to Cloud.
Examinemos esta respuesta:
- access_token: Su credencial de autenticación para el acceso al backend de Frame.io, necesaria en los encabezados para futuras solicitudes de API.
- expires_in: El periodo de validez del token de acceso en segundos; después de este periodo, es necesario actualizarlo.
- refresh_token: Se usa para la administración del token de acceso, principalmente para actualizar la autorización, pero también aplicable para la revocación.
- token_type: Siempre será
bearerpara implementaciones de API de C2C, sin que sea necesario realizar ninguna acción.
Unión de todos los pasos
Ahora vamos a implementar estas llamadas API en pseudocódigo similar a Python y gestionaremos la posible caducidad del código del dispositivo:
Nota: El bucle externo gestiona casos donde los códigos de emparejamiento caducan y se requieren códigos nuevos.
Como paso final, recupere y muestre información del proyecto desde Frame.io para confirmar el emparejamiento correcto al proyecto previsto. Veremos esto en el próximo tutorial.
Cómo crear y mostrar códigos QR para el emparejamiento
Al implementar el emparejamiento con código URL/QR, necesitará generar un código QR a partir del valor del verification_uri_complete en la respuesta. A continuación, se muestran algunos ejemplos que utilizan bibliotecas populares en diferentes lenguajes de programación:
Ejemplo de Python con qrcode
Ejemplo de JavaScript (web o Electron)
Ejemplo de Android (Java)
Ejemplo de iOS (Swift)
Prácticas recomendadas para mostrar códigos QR
Al implementar el emparejamiento con código QR, tenga en cuenta estas directrices para obtener la mejor experiencia del usuario:
-
Tamaño óptimo: Muestre códigos QR de al menos 200-250 píxeles cuadrados para un escaneo fiable.
-
Contraste: Asegúrese de que haya un alto contraste entre el código QR y el fondo (negro sobre blanco es lo ideal).
-
Corrección de errores: Use niveles de corrección de errores moderados (L o M) para equilibrar la densidad y la fiabilidad del código.
-
Instrucciones claras: Proporcione una orientación clara sobre cómo escanear el código, como “Escanee este código con la cámara de su smartphone para emparejar su dispositivo.”
-
Varias opciones: Proporcione siempre el código de emparejamiento manual junto con el código QR como opción de reserva:
-
Hipervínculo para aplicaciones móviles: Si su integración es una aplicación móvil, incluya el
verification_uri_completecomo un vínculo en el que se puede pulsar, ya que los usuarios no pueden escanear un código QR desde el mismo dispositivo. -
Pruebas: Pruebe sus códigos QR con varios dispositivos y condiciones de iluminación para garantizar un escaneo fiable.

Solución de problemas
Si surgen problemas, consulte estos escenarios comunes y sus soluciones:
- Botón “Dispositivo conectado” no visible: Al acceder al panel de administración de C2C, esto podría indicar:
* Permisos insuficientes: Si ve un mensaje sobre permisos, póngase en contacto con su administrador de cuentas para ajustar los permisos o asignar una función apropiada. * Conexión de dispositivo existente: Después de conectar un dispositivo, el botón principal “Añadir dispositivo nuevo” se reemplaza por un menú de tres puntos situado en la esquina superior derecha del panel Conexiones de C2C.
- Error de cliente no válido: Una respuesta
invalid_clientindica una discrepancia en la información del dispositivo, generalmente debido a unclient_secretincorrecto. - Error de solicitud incorrecta: Una respuesta
bad_requestindica que los datos de la solicitud tienen un formato incorrecto. Verifique los nombres de los campos y asegúrese de que todos los campos obligatorios estén incluidos.
Si su problema no aparece aquí, comparta su experiencia para que podamos mejorar esta sección de solución de problemas.
Próximos pasos
Le recomendamos que se ponga en contacto con nuestro equipo y que luego continúe con la guía Administración de autorizaciones. Quedamos a la espera de recibir sus comentarios.