Publicado por em janeiro 25, 2012 9 comentários

Facebook Connect, integrar seu site ao Facebook usando PHP.

Como fazer o login de um usuário em seu site usando seus dados do Facebook.

 

 

A internet está cada vez mais interativa,o assunto do momento são as redes sociais, twitter, facebook, google +, foursquare, busca social, um bilhão de termos diferentes e idéias diferentes, mas todas com o mesmo conceito : interatividade, praticidade, resultados.

E não é por menos que as empresas estão cada vez mais interessadas nessa divulgação, nessa facilidade, muitas delas fazem questão de estar por dentro dessa maré social, colocando em seu site seus últimos tweets, pessoas que curtem sua fan page, comentários sociais, divulgação de seus produtos, botão pra lá e pra cá, mas em especial o Facebook Connect, que por sinal, é uma ferramenta incrível.

Algum tempo atrás me deparei com esse problema, até o momento inédito para mim, configurar esse tal de Facebook Connect para um cliente.

E ao buscar ajuda na internet encontrei um conteúdo bastante precário em português, tudo que tinha eram os próprios tutoriais do Facebook, que me deixou um pouco confuso e fez com que eu perdesse um pouco mais do tempo que eu gostaria, justamente o que me motivou a escrever esse post.

Bem vamos deixar essa conversa toda pra lá e vamos direto ao ponto… configurar o Facebook Connect, você precisará seguir alguns passos para isso.

1º – Criar um aplicativo do seu site no Facebook para requerer as informações do usuário.

2º – Baixar a biblioteca PHP SDK proposta pelo Facebook.

3º – Integrar essa biblioteca ao seu site.

Criando um aplicativo no Facebook

Para criar um aplicativo no Facebook, você precisa logar em sua conta, e acessar a parte de desenvolvedor dentro do Facebook, nesse link https://developers.facebook.com/apps.

Feito isso, clique no botão “Criar novo aplicativo”, escolha o título e o espaço de nome do aplicativo, e pronto! Seu aplicativo foi criado.

Voltando a tela inicial de seus aplicativos, você já verá ele criado, edite seus dados, e coloce um ícone e uma imagem (o que recomendo, pois passa mais segurança ao usuário), um pouco abaixo dos dados, escolha o modo como seu aplicativo se integrará ao facebook como Website.

Salve as alterações e ele estará configurado. Perceba que seu aplicativo tem dois dados de identificação, App ID, e App Secret, você irá precisar destes dados posteriormente.

Baixando o PHP SDK

O segundo passo é baixar a biblioteca desenvolvida pelo facebook para essa conexão, a PHP SDK,

disponível no github do projeto    https://github.com/facebook/php-sdk .

Depois de feito o download do pacote irá perceber que veio anexado alguns exemplos e testes, que podem ser muito úteis em caso de dúvidas, por ora vamos precisar apenas dos arquivos da pasta “SRC”.

Integrando a biblioteca ao site

Aqui teremos três partes, o “botão” de connect, o intermediário, que é o responsável por autenticar seus dados e trazer o retorno, e por fim… o retorno.

O botão de connect será qualquer link enviando a solicitação de connect. Por exemplo…

[php]<a> Conectar ao facebook </a>[/php]

O intermediário será o arquivo que irá receber o link, código abaixo.

[php highlight="1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35"]<?php  require 'src/facebook.php';

$facebook = new Facebook(array(
  'appId'  ='xxxxxxxxxxxx',
  'secret' =&gt; 'xxxxxxxxxxxxxxxxxxxxxx',
));

$user = $facebook-&gt;getUser();

if ($user) {
      try {
         $user_profile = $facebook-&gt;api('/me');
      } catch (FacebookApiException $e) {
         error_log($e);
         $user = null;
      }
   }

if ($user) {

   print_r($user_profile);

} else {

   $loginUrl = $facebook-&gt;getLoginUrl(array(
      'scope' =&gt; 'email,user_birthday'
   ));

   ?&gt;<script type="text/javascript">// <![CDATA[
     window.location.href="<?=$loginUrl?]]>";

// ]]&gt;
   api('/naitik');

?&gt;[/php]

Explicando o código

linha 3 : inclui a classe do Facebook.

linha 5 a 8 : Passa os parâmetros do seu aplicativo para o Facebook (App ID e App Secret).

linha 10 : Verifica se você está logado, caso não esteja verá essa tela…

Faça o login e prossiga…

linha 12 a 19 :  Aqui se já tiver aceitado a solicitação de permissão do aplicativo, ele trará seus dados num array, na variável $user_profile.

linha 21 a 37 : Caso você ainda não tenha autenticado suas informações, será direcionado a essa página…

Nessa tela você estará permitindo as requisições que o aplicativo estará lhe enviando, por padrão o aplicativo requer apenas as informações básicas.

Caso você precise de alguma informação extra, terá que fazer a requisição, perceba que na linha 27  passo um array com alguns dados adicionais, no meu caso preciso do e-mail, e data de aniversário do usuário.

Porém você tem acesso à lista completa das permissões na página https://developers.facebook.com/docs/reference/api/permissions/.

Feito isso ele retornará ao seu script e entrará na primeira condição, trazendo os dados do usuário, aqui é o lugar onde você poderá manipular o retorno dos dados que estarão guardado na variável $user_profile, inserindo no banco, registrando uma sessão, enfim… fazendo o que quiser. No meu caso eu apenas escrevi o array com print_r().

Neste ponto já terá conseguido logar o usuário com sucesso, e ele poderá navegar em seu site como desejar.

E agora você deve estar se perguntando … como faço para deslogar o camarada? Eu explico…

Quando o usuário clicar em sair, você enviará ele para a url que o desconecta do Facebook.

[php highlight=”1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35″]<?php

require ‘src/facebook.php’;

$facebook = new Facebook(array(
‘appId’ =’xxxxxxxxxxxx’,
‘secret’ =&gt; ‘xxxxxxxxxxxxxxxxxxxxxx’,
));

$user2 = $facebook-&gt;getUser();

if ($user2) {
try {
$user_profile = $facebook-&gt;api(‘/me’);
} catch (FacebookApiException $e) {
error_log($e);
$user2 = null;
}
}

if ($user2) {
$logoutUrl = $facebook-&gt;getLogoutUrl();
} else {
$loginUrl = $facebook-&gt;getLoginUrl();
}

if ($user2){ ?&gt;<script type="mce-text/javascript">// <![CDATA[
window.location.href="<?php echo $logoutUrl; ?]]>"
// ]]&gt;[/php]

Aqui você irá declarar uma variável para verificar se o usuário está logado (apenas por precaução), caso ele esteja, a variável $logoutUrl recebe a url do Facebook para desloga-lo.

Depois é só enviar ele para esse link por meio de window.location, e pronto, ele estará deslogado do Facebook! Caso você queira apagar alguma session essa é a hora.

É isso ai, tentei ser o mais claro possível… qualquer dúvida ou sugestão deixe um comentário abaixo e terei prazer em respondê-los.

Postado por Pedro Calgaro

Categorias:
Artigo escrito por Equipe Shape Web

9 Comentários

Deixe uma resposta para Felipe Mesquita Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *