Tokens de acesso no Login do Facebook para a web

Ao final do processo de login, um token de acesso é gerado. Esse token é transmitido com todas as chamadas à API como prova de que a chamada foi realizada por uma determinada pessoa usando um determinado app.

O SDK do Facebook para JavaScript gerencia automaticamente o armazenamento de tokens de acesso e o rastreamento de status do login no navegador. Assim, você não precisa se preocupar com isso.

Entretanto, é comum que o token de acesso seja transmitido de volta para o servidor que, então, faz a chamada em nome da pessoa. Para obter o token do navegador, use o objeto response retornado via FB.getLoginStatus():

FB.getLoginStatus(function(response) {
  if (response.status === 'connected') {
    console.log(response.authResponse.accessToken);
  }
});

O token é uma string opaca de extensão variável.

Lembre-se de que os tokens de acesso gerados em navegadores geralmente têm um tempo de vida de apenas algumas horas e são atualizados automaticamente pelo SDK para JavaScript. Se você fizer chamadas de um servidor, precisará gerar um token de longa duração, conforme abordado com detalhes na documentação sobre tokens de acesso.

Verificar novamente tokens de acesso

Em geral, os apps precisam confirmar que a resposta do diálogo Entrar foi criada pela mesma pessoa que iniciou o processo. Se você estiver usando o SDK do Facebook para JavaScript, ele realiza essas verificações de maneira automática. Assim, nenhuma outra ação é necessária, considerando que você esteja fazendo apenas chamadas do navegador.

Caso você decida enviar o token de volta para o servidor, verifique-o novamente assim que ele chegar ao servidor. Esse processo está descrito na nossa documentação sobre como criar manualmente fluxos de login. Verifique se app_id e user_id correspondem à sua expectativa em relação ao ponto de extremidade de depuração do token de acesso.

Fazer chamadas à API

Neste ponto do fluxo, a pessoa é autenticada e registrada. O app agora está pronto para fazer chamadas à API do navegador e em nome da pessoa. No navegador, a maneira mais fácil de fazer isso é com a chamada à FB.api(). A FB.api() adicionará automaticamente o token de acesso à chamada.

O código:

FB.api('/me', function(response) {
    console.log(JSON.stringify(response));
});

Retornará uma matriz com o ID e o nome.

{
  "id":"101540562372987329832845483",
  "name":"Bob Smith"
}

Se você fizer chamadas pelo lado do servidor com o token de acesso, poderá usar um SDK no servidor para fazer chamadas semelhantes. Muitas pessoas usam PHP para desenvolver aplicativos da web. Veja exemplos de como fazer chamadas de API do lado do servidor na documentação sobre SDK para PHP.

Como detectar quando as pessoas desinstalam apps

Não é possível desinstalar um app via Facebook.com sem interagir com ele. Para ajudar os apps a detectarem essa ação, permitimos que eles forneçam uma URL de retorno de chamada de desautorização que será informada sempre que isso acontecer.

É possível habilitar um retorno de chamada de desautorização por meio do Painel de Apps.