11 comentários sobre “Como implementar login com Facebook (OAuth 2.0) – Parte 1 de 2

  1. Felipe boa tarde,
    primeiramente gostaria de te parabenizar pelos post q foram ótimos.

    Agora gostaria q me tirasse uma duvida, existe meios de logar no facebook sem que tenha interação com usuario? ou seja fazer log-in sem o usuario digitar seus dados pegar isso dinamicamente de um banco ou entao setar os parametros (email, senha) via código?

    Ajudaria muito rs
    PS: so pra explicar estou desenvolvendo um sistema de post automatico no face e por enquanto so consigo quando usuario esta logado no face queria fazer isso rodar no servidor em determinadas horas do dia.
    (estou usando PHP SDK)

    Abraço

    • Fala Danilo,

      Acho que o único jeito é fazer um trecho de código que vai simular a interação do browser do usuário com o Facebook. Vc teria que descobrir a URL de Login e fazer, programaticamente, uma Request passando o email e senha como parâmetro, e em seguida receber e processar o Response para obter o Cookie com o Access Token.

      Algo assim… A API mudou desde a última vez que mexi com ela, então não sei exatamente quais URLs vc teria que usar.

      Vi que o SDK tem um método para recuperar a URL de Login, tenta descobrir as coisas a partir daí. Alias, acho que vale muito a pena baixar o código fonte do SDK e ver o que os métodos dele faz:
      https://github.com/facebook/facebook-php-sdk

      No entanto, na minha opinião, não acho que seja uma boa prática armazenar email e senha dos usuário. O ideal seria sua aplicação obrigar o usuário a fazer login pelo menos uma vez, e então bastaria você salvar no banco o Access Token apenas.

      A questão é que o Access Token tem validade de, se não me engano, 60 dias. Então, depois desse período o usuário teria que fazer outro login.

      Abs

  2. Consegui o access token mas aí não descobri qual o meu Client Secret. Eu tentei usar meu app secret mas dá a seguinte mensagem de erro:
    {
    “error”: {
    “message”: “Error validating client secret.”,
    “type”: “OAuthException”,
    “code”: 1
    }
    }

    • Peter, acredito que o que você conseguiu na primeira requisição foi o code.

      O que deu erro foi a segunda requisição:

      https://graph.facebook.com/oauth/access_token?
      redirect_uri=http://localhost:8080/index.html&
      client_id=... &
      code=... &
      client_secret=... &

      Tenta mudar a ordem dos parâmetro, deixando o code no final, porque por algum motivo deve ter algum caractere estranho no meio:

      https://graph.facebook.com/oauth/access_token?
      redirect_uri=http://localhost:8080/index.html&
      client_id=... &
      client_secret=... &
      code=...

      O Client Secret é sim o seu APP Secret.

      Se essa requisição funcionar, aí sim vc terá o Access Token.

      • Olá.
        Primeiramente parabéns pelo tutorial.
        Também estou com o mesmo problema que o Peter comentou.
        Tetei trocar a ordem dos parâmetros mas também não adiantou, saberia me dizer o que pode ser?

        {
        “error”: {
        “message”: “Error validating client secret.”,
        “type”: “OAuthException”,
        “code”: 1
        }
        }

    • Boa pergunta, realmente não falei isso no post.

      Com o Access Token em mãos você pode pegar as informações do usuário autorizado fazendo uma request para:
      https://graph.facebook.com/me?access_token=...

      Abs

Os comentários estão desativados.