Instruções: Autorizar
Instruções: Autorizar
Introdução
Este guia demonstra o processo de autenticação e autorização para dispositivos Camera to Cloud (C2C) em um projeto Frame.io. Vamos explorar tanto o método padrão de inserção manual de código quanto a abordagem aprimorada de emparelhamento via QR Code para otimizar a experiência do usuário.
O que vou precisar?
Revise o guia Antes de começar a implementação se ainda não fez isso. Você deve ter recebido um client_secret da nossa equipe para identificar sua integração. Se não recebeu, consulte esta introdução ao ecossistema C2C e entre em contato com nossa equipe.
Pré-requisitos para emparelhamento por URL e QR Code
Para implementar o emparelhamento por URL e QR Code, certifique-se de atender aos requisitos:
- Compatibilidade de dispositivos: verifique se o dispositivo suporta geração de URL/QR Code durante o processo de emparelhamento.
Como funciona o fluxo de autorização
Para entender o fluxo de autorização da perspectiva do usuário, consulte estes recursos:
- Artigo de suporte para adicionar novos dispositivos.
- Vídeo de treinamento sobre como autorizar um Teradek Cube.
Este processo de autorização minimiza os requisitos de implementação. Você não precisará:
- Redirecionar para navegadores da web (a menos que use o emparelhamento por código URL)
- Lidar com autenticação de usuário do Frame.io
- Apresentar interfaces de seleção de conta/projeto
- Desenvolver componentes de interface complexos além de exibições básicas de informações
Aprimorando a experiência do usuário com emparelhamento por URL Code
Usuários modernos esperam interações eficientes com dispositivos. Embora o processo atual de emparelhamento manual funcione adequadamente, ele pode ser otimizado.
Ao implementar o emparelhamento por URL e QR Code, semelhante aos serviços de streaming como Netflix ou Disney+, podemos simplificar significativamente o processo, minimizar erros de entrada e reduzir o tempo de emparelhamento.
Identificação do dispositivo (client_id)
Cada dispositivo físico requer um identificador exclusivo para rastreamento de conexão dentro do projeto de um usuário.
Para dispositivos, esse identificador é o client_id, que é essencial durante a autorização. Ao implementar, considere origens de identificador apropriadas, como números de série do dispositivo, UUIDs ou outras strings exclusivas. Se você estiver integrando em um dispositivo Apple, recomendamos usar um UUID persistente e exclusivo que seja consistente entre reinicializações do dispositivo. Tenha cuidado com informações pessoais identificáveis. Endereços de email do usuário não são valores client_id adequados.
Além disso, certifique-se de controlar o identificador. Endereços MAC do dispositivo são inadequados, pois não são de propriedade do seu software e podem constituir informações pessoais identificáveis.
Se você precisar de orientação sobre como selecionar um identificador adequado, nossa equipe pode ajudar a determinar um valor adequado que simplifique a integração.
Etapa 1: solicitar um código de dispositivo
Para começar a implementação, solicite um código de dispositivo através do ponto de acesso /v2/auth/device/code:
Método de emparelhamento tradicional
Ativação do emparelhamento por URL Code
Para emparelhamento por código URL, modifique a chamada de API com cabeçalhos adicionais:
Observação: esses pontos de acesso de autenticação aceitam exclusivamente dados de formulário, não JSON. Pós-autenticação, outros pontos de acesso aceitarão conteúdos JSON, mas pontos de acesso de autenticação rejeitarão solicitações JSON.
Parâmetros do conteúdo
-
client_id: o identificador exclusivo para seu dispositivo físico. Isso deve ser garantidamente exclusivo, como um número de série ou UUID.
-
client_secret: fornecido pelo suporte do Frame.io para identificar o modelo do seu dispositivo. Esse valor confidencial deve permanecer protegido dos usuários e criptografado quando armazenado.
-
scope: as permissões solicitadas, separadas por espaços. Os dispositivos podem solicitar:
-
asset_create: permite a criação e o upload de ativos. *offline: permite a atualização de autorização por meio do token de atualização. Sem esse escopo, os usuários precisariam autorizar novamente o dispositivo a cada 8 horas, já que os tokens de autorização expiram.
Em implementações práticas, os dispositivos normalmente solicitam ambos os escopos.
Entender a resposta da API
A solicitação gera uma resposta similar a:
Resposta de emparelhamento tradicional
Resposta de emparelhamento por URL
Detalhamento da resposta
- device_code: este identificador interno deve permanecer oculto dos usuários e identifica a solicitação de autorização durante o polling.
- expires_in: o período de validade do código em segundos.
- interval: o intervalo de polling recomendado em segundos.
- name: o identificador do dispositivo de conexão.
- user_code: o código de seis dígitos para entrada manual no Frame.io para emparelhamento do dispositivo.
- verification_uri: o URL base para entrada manual se a leitura do QR Code não estiver disponível.
- verification_uri_complete: o URL completo que contém o código de emparelhamento, destinado para criar hiperlink em um aplicativo para dispositivos móveis ou geração de QR Code para simplificar a navegação do usuário para a interface de emparelhamento.
Exibir o QR Code para o usuário
Usando o verification_uri_complete, gere e exiba um QR Code na tela do dispositivo para o usuário escanear, facilitando o emparelhamento eficiente.
Exemplo: tela do dispositivo com QR Code exibido
Sempre forneça opções de fallback: exiba o user_code e o verification_uri para entrada manual quando a leitura do QR Code não for possível. Como alternativa, considere exibir o verification_uri como um QR Code estático para leitura móvel. Para integrações de aplicativo para dispositivos móveis, inclua o verification_uri_complete como um hiperlink clicável, já que os usuários não podem escanear QR Codes do dispositivo que executa o aplicativo.
Etapa 2: polling para autorização do usuário
Depois de fornecer o código de emparelhamento ou código de URL, verifique a entrada do usuário com esta solicitação:
Parâmetros do conteúdo
- client_id: o mesmo identificador usado na Etapa 1.
- device_code: o valor
device_coderetornado anteriormente. - grant_type: o identificador do tipo de concessão OAuth, consistentemente
urn:ietf:params:oauth:grant-type:device_codepara esta implementação.
As tentativas iniciais de polling normalmente retornam:
Este erro não fatal indica que o usuário não concluiu a entrada do código. Continue a enquete até a conclusão.
Observação para dispositivos com app iOS: se o usuário alternar para o app iOS do Frame.io para inserir o código de emparelhamento, o app pode ir para o fundo. Quando o app ficar ativo novamente, como em applicationDidBecomeActive, retome a enquete para que o fluxo de autorização possa continuar sem exigir que o usuário reinicie o emparelhamento.
Se receber:
O código expirou antes da entrada do usuário. Gere um novo código/QR Code via Etapa 1, apresente-o ao usuário e retome o polling.
A autorização bem-sucedida produz:
Parabéns por autorizar com sucesso o dispositivo Camera to Cloud!
Vamos analisar esta resposta:
- access_token: sua credencial de autenticação para acesso ao back-end do Frame.io, necessária em cabeçalhos para futuras chamadas de API.
- expires_in: o período de validade do token de acesso em segundos, após o qual a atualização é necessária.
- refresh_token: usado para gerenciamento de tokens de acesso, principalmente para atualizar autorizações, mas também aplicável para revogações.
- token_type: consistentemente
bearerpara implementações de API C2C, não requerendo ação.
Reunir as etapas
Agora vamos implementar essas chamadas de API em pseudocódigo similar ao Python, lidando com potencial expiração do código do dispositivo:
Observação: o loop externo lida com casos onde códigos de emparelhamento expiram e novos códigos são necessários.
Como etapa final, recupere e exiba informações do projeto do Frame.io para confirmar o emparelhamento bem-sucedido ao projeto pretendido. Abordaremos isso no próximo tutorial.
Criação e exibição de QR Codes para emparelhamento
Ao implementar o emparelhamento por URL/QR Code, você precisará gerar um QR Code a partir do valor verification_uri_complete na resposta. Aqui estão exemplos usando bibliotecas populares em diferentes linguagens de programação:
Exemplo Python usando qrcode
Exemplo JavaScript (Web ou Electron)
Exemplo Android (Java)
Exemplo iOS (Swift)
Práticas recomendadas para exibição de QR Code
Ao implementar o emparelhamento por QR Code, considere estas diretrizes para obter a melhor experiência do usuário:
-
Tamanho ideal: exiba QR Codes com pelo menos 200 a 250 pixels quadrados para leitura confiável.
-
Contraste: garanta alto contraste entre o QR Code e o fundo (preto sobre branco é o ideal).
-
Correção de erros: use níveis moderados de correção de erros (L ou M) para equilibrar densidade de código e confiabilidade.
-
Instruções claras: forneça orientação clara sobre como escanear o código, como “Escaneie este código com a câmera do smartphone para emparelhar o dispositivo”.
-
Várias opções: sempre forneça o código de emparelhamento manual junto ao QR Code como alternativa:
-
Hiperlink para aplicativos para dispositivos móveis: se sua integração for um aplicativo para dispositivos móveis, inclua o
verification_uri_completecomo um link tocável, já que os usuários não conseguem escanear um QR code no mesmo dispositivo. -
Testar: teste os QR Codes com vários dispositivos e condições de iluminação para garantir leitura confiável.

Solução de problemas
Se você encontrar problemas, consulte estes cenários comuns e soluções:
-
Botão “Conectar dispositivo” não visível: ao acessar o painel de gerenciamento C2C, isso pode indicar:
-
Permissões insuficientes: se você vir uma mensagem de permissões, entre em contato com o gerente de conta para ajustar as permissões ou atribuir uma função apropriada. * Conexão de dispositivo existente: depois de conectar um dispositivo, o botão principal “Adicionar novo dispositivo” é substituído por um menu de três pontos no canto superior direito do painel Conexões C2C.
-
Erro de cliente inválido: uma resposta
invalid_clientindica incompatibilidade de informações do dispositivo, geralmente devido a umclient_secretincorreto. -
Erro de solicitação inválida: uma resposta
bad_requestindica dados de solicitação inválidos.Verifique os nomes dos campos e confirme se todos os campos obrigatórios estão incluídos.
Se o problema não for resolvido aqui, compartilhe sua experiência para que possamos aprimorar esta seção de solução de problemas.
Próximas etapas
Recomendamos que você entre em contato com nossa equipe e consulte o guia de gerenciamento de autorizações. Aguardamos seus comentários!