Faça uma pergunta »

Integrar Facebook Connecte em seu site

Abril 2015




Pré-requisito


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.

Registrar sua aplicação


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.

Recuperar PHP SDK


Esta biblioteca de função lhe mastigará boa parte de seu trabalho :
Uploade em seu servidor /src/facebook.php

Integre Facebook connect

Instale o botão


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.

Recuperar os dados


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.
  • Cet article apresenta à você a etapa essencial ao seu sistema de conexão.

Problemas que você pode encontrar


<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__

Fontes


Facebook desenvolvedor
Tradução feita por Ana Spadari
Para uma leitura offline, é possível baixar gratuitamente este artigo no formato PDF:
Integrar-facebook-connecte-em-seu-site.pdf

A ver igualmente

Na mesma categoria

Add Facebook Connect to your website
Por jak58 em 25 de julho de 2013
Integrar Facebook Connect en tu sitio web
Por Carlos-vialfa em 24 de julho de 2013
Intégrer Facebook Connect sur son site
Por Alexis-pires em 15 de fevereiro de 2011
Artigo original publicado por Alexis-pires. Tradução feita por ninha25.
Este documento, intitulado « Integrar Facebook Connecte em seu site  »a partir de Kioskea (pt.kioskea.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.