Login com o Facebook em aplicações ASP.NET

Como vocês sabem, é possível criar um aplicativo que integra o login com o Facebook. Ele utiliza a plataforma OAuth 2.0 (na qual eu havia feito uma tradução desta classe para efetuar o login, na qual Eran Sandler escreveu, segue o link)

Envolve 3 diferentes passos, autenticacao do usuario, autorizacao do aplicativo e autenticacao do aplicativo.

Autenticação do usuário é para definir se o usuário que está logado no facebook, é realmente a pessoa que deseja permitir o acesso para o seu aplicativo.

Autorização do aplicativo confirma a solicitação do usuário que está inserindo a informação correta do seu aplicativo, e se todos estes passos estiverem corretos, existe uma ultima validação  entre o facebook e o Token da sua aplicação, para que a aplicação tenha todas as informações necessárias para visualizar os dados.

Logo abaixo, retirei do facebook a imagem para mostrar o processo passo-a-passo de como é a requisição para acesso as informações para o seu aplicativo.

 

Conforme o tutorial disponibilizado no link, irei disponibilizar os 3 passos para URL.

 

Passo 1:

Fazer uma requisicao para o usuario acessar o login do facebook:

https://www.facebook.com/dialog/oauth?client_id=SEU_CODIGO_DE_APP&redirect_uri=SUA_URL_DE_DESTINO

Passo 2:

Na url de destino, faça algumas WebRequest’s, não faça nenhum redirecionamento através de Server.Transfer ou Response.Redirect, nesta pagina de destino você receberá a seguinte querystring {code} (Request.QueryString[“code”]), ou, exibirá a informação de erro, se todos os passos vieram com sucesso, faça uma webrequest através da pagina de destino para o seguinte endereco:
https://graph.facebook.com/oauth/access_token?     client_id=SEU_CODIGO_DE_APLICACAO&redirect_uri=URL_DE_DESTINO&     client_secret=SEU_CODIGO_SECRETO&code=O_CODIGO_DE_RETORNO
Passo 3:

Aqui você poderá fazer a requisição para qualquer informação que desejar, de acordo com o acesso que você solicitou, segue uma ótima referencia para as possiveis solicitações (link)

Neste exemplo iremos fazer a solicitação para as informações do usuario que está acessando a aplicação, e na requisição de retorno, o facebook retorna o Token para acesso, com isso é só realizar as solicitações:

https://graph.facebook.com/me?access_token=TOKEN_RETORNO

Se receber a seguinte mensagem:
{
“error”: {
“type”: “OAuthException”,
“message”: “Error validating verification code.”
}
}
Este erro está no passo 1/2, pois, no passo 1 voce solicitou acesso a URL X, porém no passo 2 você está utilizando outra URL, então faça a requisição através da URL que havia solicitado acesso.

 

Happy Coding,

Nicolas Tarzia

  • Carlos

    Nicolas, não consegui completar a segunda parte, o que o request deve retornar, sempre tenho o problema de bad request. Poderia me ajudar?

    • http://www.nicolastarzia.com/blog Nícolas Tarzia

      Olá Carlos, com certeza, poderia enviar o código que você está fazendo como POST?