Caso você precise de ajuda com seu Portal do Facebook, acesse a Central de Ajuda do Portal.
Para inserir seu código do Facebook para Dispositivos para fazer login em smart TVs, câmeras, impressoras ou outros dispositivos, acesse a página do Facebook para Dispositivos.
Implemente o Login do Facebook para Dispositivos para permitir que as pessoas façam login em seu aplicativo ou serviço usando suas contas do Facebook. Esse recurso permite que as pessoas façam login em dispositivos com entrada ou capacidade de display limitadas, como smart TVs, porta-retratos digitais ou dispositivos da Internet das Coisas.
Com o login no dispositivo, o dispositivo mostra um código alfanumérico e instrui as pessoas a inseri-lo em uma página da web no computador ou smartphone. As pessoas que usam seu aplicativo ou serviço podem então conceder permissões. Depois que seu aplicativo recebe as permissões, o dispositivo recebe um token de acesso que seu aplicativo usa para fazer solicitações da Graph API para identificar a pessoa e obter informações para personalizar a experiência dela com o dispositivo.
Se você estiver criando um aplicativo para Apple TV, Android TV ou Fire TV, deverá usar nosso SDK do Facebook para tvOS ou SDK do Facebook para Android.
Este guia descreve a integração manual do login no dispositivo sem o uso dos SDKs acima.
Estas diretrizes descrevem como criar uma experiência simples, segura e consistente de login em dispositivos e serviços.
Primeiro, considere em que momento da experiência do usuário você quer pedir às pessoas para fazer login ou se conectar com o Facebook. Para alguns dispositivos isso ocorrerá imediatamente, e para outros pode ser mais adiante durante a experiência.
Para garantir uma experiência do usuário mais utilizável, consistente e confiável, crie o botão para ser o mais parecido possível com o botão oficial de Login do Facebook.
De uma perspectiva de design visual, isso significa que você deve
Quando for o caso, descreva as vantagens do login. Por exemplo, "descubra o que seus amigos estão assistindo" ou "veja fotos dos álbuns do Facebook".
Quando alguém clica na chamada para ação, o dispositivo faz uma chamada para a API do Facebook que retorna um código.
Em sua interface, diga às pessoas que elas precisam visitar um site e inserir o código com a seguinte mensagem: "Em seguida, visite facebook.com/device (http://facebook.com/device) em seu computador ou smartphone e insira este código". Exiba o código completo que você recebeu da API de Login no Dispositivo do Facebook. O código tem entre 6 e 12 caracteres.
Você pode incluir um botão Close
ou Cancel
para que as pessoas possam cancelar o fluxo de login no dispositivo. Isso deve redirecioná-las para a tela de login inicial.
Quando o código é exibido na tela, seu dispositivo consulta a API de Login no Dispositivo para ver se alguém autorizou seu aplicativo. Depois de alguns minutos, se o código não tiver sido inserido, a API de Login no Dispositivo retorna um erro code_expired
. Quando o dispositivo recebe esse erro, é necessário cancelar o fluxo de login e a interface deve exibir a chamada para ação.
Os códigos QR também podem ser gerados com o código do usuário incorporado na URL. Isso ocorre ao adicionar o parâmetro user_code
à url:
https://www.facebook.com/device?user_code=<USER_CODE>
É o fluxo visto pelos usuários quando eles acessam facebook.com/device no computador ou navegador móvel. Primeiro eles veem um campo de texto onde podem inserir o código:
Depois de inserir o código e clicar em Continue
, eles podem escolher as permissões que desejam conceder:
As pessoas recebem uma mensagem de confirmação para saberem que o processo de login foi bem-sucedido:
Na interface do seu dispositivo, você também deve exibir uma mensagem de confirmação. O ideal seria incluir o nome da pessoa e, se possível, a foto do perfil do Facebook.
Veja essa confirmação no seu dispositivo até a pessoa clicar em um botão Continue
. Alguém pode precisar inserir o código em um computador em outro local, então talvez precise de tempo para voltar ao dispositivo e ver a confirmação antes de continuar.
Depois que o usuário clica em Continue
, o dispositivo pode então mostrar uma experiência fantástica e personalizada.
As pessoas devem conseguir sair do seu dispositivo, e seu dispositivo não deve armazenar a conexão delas com o Facebook. Para fazer isso, ofereça uma opção Log out from Facebook
ou Disconnect from Facebook
no menu do seu dispositivo.
Quando alguém escolhe essa opção, o dispositivo deve excluir o token de acesso guardado na sua memória. Se você armazenar o token de acesso em um banco de dados ou armazenamento em nuvem, também deverá removê-lo de lá. Não é necessário fazer uma chamada de API para invalidar o token de acesso.
Depois que alguém sair, o dispositivo deve exibir a chamada para ação inicial na Etapa 1.
O Login no Facebook para Dispositivos é para dispositivos que fazem chamadas HTTP diretamente através da Internet. A seguir estão as chamadas de API e as respostas que seu dispositivo pode dar.
Carregue o painel do aplicativo e altere Produtos > Login no Facebook > Configurações > Login de Dispositivos para "Sim".
Quando o usuário clica na chamada para ação Connect to Facebook
ou Log in with Facebook
, seu dispositivo deve fazer um HTTP POST para:
POST https://graph.facebook.com/v2.6/device/login access_token=<YOUR_APP_ID|CLIENT_TOKEN> scope=<COMMA_SEPARATED_PERMISSION_NAMES> // e.g. public_profile,user_likes redirect_uri=<VALID_OAUTH_REDIRECT_URL>
O parâmetro scope
é opcional e deve conter uma lista separada por vírgulas de Permissões de Login que são aprovadas para uso na Análise de Login.
O CLIENT_TOKEN
encontra-se em suas Configurações do aplicativo -> Avançadas, e deve ser combinado com o ID do seu aplicativo (separado por uma barra vertical, |
) para formar o access_token
completo.
O redirect_uri
é um parâmetro opcional. Quando você fornece uma URL, a pessoa é redirecionada para a URL depois de concluir o login com sucesso. Isso permite conectar a pessoa ao site do seu aplicativo para gerenciamento adicional da conta. Essa URL deve ser uma URL de redirecionamento do OAuth válida conforme configurado em Configurações do aplicativo -> Avançadas. A resposta está neste formato:
{ "code": "92a2b2e351f2b0b3503b2de251132f47", "user_code": "A1NWZ9", "verification_uri": "https://www.facebook.com/device", "expires_in": 420, "interval": 5 }
Essa resposta significa:
O dispositivo deve apresentar o user_code
e dizer às pessoas para visitar a verification_uri
como facebook.com/device no PC ou smartphone. Consulte Experiência do usuário.
O dispositivo deve sondar a API de Login no Dispositivo para ver se a pessoa autorizou o seu aplicativo com sucesso. Faça isso no interval
da resposta à sua chamada na Etapa 1, que é a cada cinco segundos. O dispositivo deve consultar:
POST https://graph.facebook.com/v2.6/device/login_status access_token=<YOUR_APP_ID|CLIENT_TOKEN> code=<LONG_CODE_FROM_STEP_1> // e.g. "92a2b2e351f2b0b3503b2de251132f47"
A resposta a essa chamada de API depende de onde a pessoa está no fluxo de autorização. Você vai receber acesso ao token ou um objeto de erro com um subcódigo específico para analisar:
Subcódigo de erro | Exemplo de resposta | Significado |
---|---|---|
|
| O usuário autorizou o dispositivo com sucesso. Agora, o dispositivo pode usar o valor do |
|
| O usuário ainda não autorizou o seu aplicativo. Continue sondando à taxa especificada na resposta na Etapa 1. |
|
| Seu dispositivo está sondando com muita frequência. Reduzir a sondagem para o intervalo especificado na primeira chamada de API. |
|
| O código do dispositivo expirou. Cancele o fluxo de login no dispositivo e redirecione o usuário para a tela inicial. |
Quando você recebe um token de acesso, a pessoa autorizou seu aplicativo com êxito. Mantenha esse token de acesso no dispositivo.
Uma vez que as pessoas sabem que o processo de login foi bem-sucedido, seu dispositivo deverá mostrar o nome da pessoa e, se disponível, uma foto do perfil antes de clicar em Continue
. Para obter o nome e a foto do perfil da pessoa, o dispositivo deverá fazer uma chamada padrão da Graph API:
GET https://graph.facebook.com/v2.3/me? fields=name,picture& access_token=<USER_ACCESS_TOKEN>
Você receberá uma resposta no formato:
{ "name": "John Doe", "picture": { "data": { "is_silhouette": false, "url": "https://fbcdn.akamaihd.net/hmac...ile.jpg" } }, "id": "2023462875238472" }
Indique o nome e a foto do perfil da pessoa antes de clicar em Continue
no seu dispositivo.
Seu dispositivo deve manter o token de acesso para fazer outras solicitações para a Graph API.
Tokens de acesso do login no dispositivo podem ser válidos por até 60 dias, mas podem ser invalidados em uma série de situações. Por exemplo, quando uma pessoa muda a senha do Facebook dela, o token de acesso é invalidado.
Se o token é inválido, o dispositivo deverá excluir o token de sua memória. A pessoa que usa o dispositivo precisa executar novamente o fluxo do login no dispositivo desde a Etapa 1 para recuperar um token novo e válido.
Posso fazer solicitações de fluxo do dispositivo por meio de HTTP?
OAuth 2 requer TLS/HTTPS.
Posso fazer solicitações de fluxo do dispositivo com o método GET?
Todas as solicitações de fluxo do dispositivo devem ser solicitações POST
.
Como posso atualizar meu token de acesso de login no dispositivo?
Tokens de acesso do login no dispositivo podem ser válidos por até 60 dias.
Se o token é inválido, o dispositivo deverá excluir o token de sua memória. A pessoa que usa o dispositivo precisa executar novamente o fluxo do login no dispositivo como descrito na Etapa 1 para recuperar um token novo e válido.
Para saber mais sobre como atualizar tokens, consulte Tokens de Acesso.
Estou recebendo um erro Invalid API method
ao fazer uma solicitação POST. O que está errado?
Se você fizer uma solicitação POST e receber um erro como este:
{"error":{"message":"Invalid API method","type":"OAuthException","code":3}}
Talvez você precise ativar o Login de Dispositivos em seu aplicativo.
Carregue o painel do aplicativo e defina Produtos > Login no Facebook > Configurações > Login de Dispositivos para "Sim".
Meu token de acesso de login no dispositivo é inválido. O que devo fazer?
Se o token de acesso for inválido, o dispositivo deverá excluir o token de sua memória e obter um novo token. A pessoa que usa o dispositivo precisa executar novamente o fluxo do login no dispositivo como descrito na Etapa 1 para recuperar um token novo e válido.