Como logar com o facebook em seu site utilizando o SDK PHP abrindo em uma popup
15/09/2013 - Escrito por: Felipe Mitamura Hatanaka
Neste artigo irei mostrar como adicionar o facebook login em seu site abrindo em uma popup utilizando o SDK PHP. Você pode verificar a documentação do SDK PHP ou Javascript no link: http://developers.facebook.com/ para ter uma base do funcionamento dessa biblioteca. Neste artivo você terá acesso a um exemplo que irá facilitar o entendimento.
Primeiramente, você precisa criar um App no Facebook para seu site, pois você vai precisar de um App ID do facebook antes de você começar a usar o SDK. Para criar uma Aplicativo, basta ir neste link: https://developers.facebook.com/apps/ e clique no botão "+ Criar Novo Aplicativo".
Depois de criar o aplicativo, observe a identificação do aplicativo mostrado na parte superior da página do painel.
Preencha o capcha
Coloque a URL do seu site (ou da página de cadastro).
Código Fonte
Vamos criar um arquivo chamado login_facebook.php com o código abaixo:
session_start(); if($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['code'])){ // Informe o seu App ID abaixo $appId = 'ID_DO_SEU_APP'; // Digite o App Secret do seu aplicativo abaixo: $appSecret = 'APP_SECRET_DO_SEU_APP'; // Url informada no campo "Site URL" $redirectUri = urlencode('WWW_URL_SEU_SITE/facebook/login_facebook.php'); // Obtém o código da query string $code = $_GET['code']; // Monta a url para obter o token de acesso e assim obter os dados do usuário $token_url = "https://graph.facebook.com/oauth/access_token?" . "client_id=" . $appId . "&redirect_uri=" . $redirectUri . "&client_secret=" . $appSecret . "&code=" . $code; //pega os dados $response = @file_get_contents($token_url); if($response){ $params = null; parse_str($response, $params); if(isset($params['access_token']) && $params['access_token']){ $graph_url = "https://graph.facebook.com/me?access_token=" . $params['access_token']; $user = json_decode(file_get_contents($graph_url)); // nesse IF verificamos se veio os dados corretamente if(isset($user->email) && $user->email){ /* *Apartir daqui, você já tem acesso aos dados usuario, podendo armazená-los *em sessão, cookie ou já pode inserir em seu banco de dados para efetuar *autenticação. *No meu caso, solicitei todos os dados abaixo e guardei em sessões. */ $_SESSION['email'] = $user->email; $_SESSION['nome'] = $user->name; $_SESSION['localizacao'] = $user->location->name; $_SESSION['uid_facebook'] = $user->id; $_SESSION['user_facebook'] = $user->username; echo ""; echo ""; } }else{ echo "Erro de conexão com Facebook."; exit(0); } }else{ echo "Erro de conexão com Facebook."; exit(0); } }else if($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['error'])){ echo ""; }
Agora vamos criar o link para chamar o login do facebook index.html com o seguinte código dentro do body.
cadastre-se com Facebook
Clique no link a seguir para baixar o exemplo: login-facebook.rar
Exemplo de login com o app da Agência WEB Hatanaka: