Antes de abordar este tutorial, você deve dispor de sólidos conhecimentos em PHP e JavaScript pois estas APIs são difíceis de apreender. Este tutorial é jovem e pode então conter imperfeições, obrigado de me enviar comentários. Os comentários não se substituem ao suporte, para isso você dispõe do fórum. Leia bem este tutorial na sua integridade.
Para beneficiar das APIs do Facebook, você deve registrar uma aplicação, ela lhe fornecerá uma chave secreta e um ID de aplicação que são indispensáveis para interagir com Facebook.
Esta biblioteca de função lhe mastigará boa parte de seu trabalho :
Uploade em seu servidor /src/facebook.php
Facebook lhe propõe duas maneiras de construir seu botão : o método xfbml e o outro método. Nós estudaremos o outro método, mais flexível penso eu.
O outro método é bastante simples, é um simples botão, ao qual é associado funções originárias da biblioteca JavaScript SDK.
Eu lhe dou um código JavaScript, que reúne o essencial daquilo que se tem necessidade para fazer nosso botão:
<script type="text/javascript"> function fblogout() { FB.logout(function () { window.location.reload(); }); } window.fbAsyncInit = function() { FB.init({ appId : '<?php echo $facebook->getAppId(); ?>', session : <?php echo json_encode($session); ?>, status : true, cookie : true, xfbml : true }); FB.Event.subscribe('auth.login', function() { window.location.reload(); }); }; (function() { var e = document.createElement('script'); e.src = document.location.protocol + '//connect.facebook.net/fr_FR/all.js'; e.async = true; document.getElementById('fb-root').appendChild(e); }()); //your fb login function function fblogin() { FB.login(function(response) { //... }, {perms:'read_stream,publish_stream,offline_access'}); redir(); } </script>
Neste nível é muito simples, para você se conectar acione a função fblogin() durante o acontecimento "clic" (onclick). Para a desconexão bastará acionar fblogout().
Concretamente o que vão fazer estas funções ?
fblogin() : verifique que o usuário está conectado ao Facebook, se você estiver conectado ela verificará que você dispõe dos direitos necessários. Os direitos são personalizáveis:
perms:'read_stream,publish_stream,offline_access' à modificar com este artigo de referencia.
fblogout() : Esta função desconectará o usuário do Facebook.
Será preciso em um primeiro momento recuperar os dados, o código seguinte vai verificar se o visitante está conectado Facebook, se tem as autorizações, neste caso os dados são automaticamente registrados no quadro estiver realmente conectado e se você ($me). Note que você deve anotar seu appid e sua chave secreta bem como trocar o caminho de seu arquivo facebook.php.
require 'function/facebook/facebook.php'; $facebook = new Facebook(array( 'appId' => '', 'secret' => '', 'cookie' => true,)); $session = $facebook->getSession(); $me = null; if($session){ try { $uid = $facebook->getUser(); $me = $facebook->api('/me'); } catch(FacebookApiException $e){ error_log($e); } }
Observação : if($session) para testar a presença de sessão facebook e if($me) para saber se dispõe dos dados de usuário. ital>
Assim, com q os dados recuperados, você vai ter que usá-los de forma diferente dependendo do seu site: criar uma conta de usuário ao se conectar ou apenas usar como conexão.
Se você tem sua proposta sistema para inscrição e conexão, então somente irá servir como conexão ou também você pode usá-lo como o sistema de inscrição.
Digamos que você use apenas como um sistema de conexão para receber dados, na recepção dos dados você deve verificar se você conhece este membro, e o método mais simples é verificar a existência do e-mail em seu banco de dados. Se o usuário está registrado, você dever somente criar suas variáveis de sessões como você teria feito com seu próprio sistema desconexão.
<ital>"Como saber se o usuário se desconectou do Facebook ?"
Em um mundo perfeito iríamos testar apenas a presença da variável $me e se não existir destruiríamos a variável de sessão. Só que a vida é mal feita e você decidiu ter dois sistemas de conexão e que ao fazer isso você lhe desconectaria os usuários que usuários que estão conectados sem facebook (porque $me não existe, neste caso). Então, a maneira mais fácil é criar uma variável de sessão $ [$_SESSION['facebook'] o que atesta que você está conectado usando o Facebook. E se a sessão existir, mas a variável $me não, isso significaria que o usuário estava conectado usando o Facebook e se desconectou depois, então o desconectamos.
__ à completar__
Facebook desenvolvedor
Tradução feita por Ana Spadari