Criando Aplicativos Facebook SDK v5 em PHP

Introdução

Este artigo esta atualizado e testado de acordo com a última versão de Graph API. No momento v2.3 2.4. Esta também baseado na versão 4.0.x 5 do SDK para PHP. A antiga versão do SDK (v3) se encontra depreciado.

Neste artigo vamos demonstrar como criar uma aplicação simples para o facebook usando a Graph API com o sdk v4.0.x 5 do php. Vamos criar uma simples aplicativo que realiza o Login no Facebook e obtém as informações básicas do usuário. Iremos presumir que a aplicação será hospedada em um servidor particular próprio.

Caso não tenha um servidor próprio, é possível configurar o aplicativo para rodar localmente no seu ambiente durante o desenvolvimento do mesmo (veremos como fazer isso mais adiante). Quando precisar publicá-lo em produção, terá que ter um servidor próprio.

Registrar conta como desenvolvedor

O primeiro passo para criar um aplicativo do facebook, é ter sua conta registrada como conta de desenvolvedor. Caso ainda não tenha criado nenhum aplicativo, esse será o seu primeiro passo. Acesso o link https://developers.facebook.com e clique no link Registrar agora!. Veja figura:

Registrar como desenvolvedor

Após clicar no link, basta seguir as orientações do passo a passo:

  1. Aceitar os termos de adesão
  2. Verificar sua conta enviando um código de verificação ao seu número de celular por sms ou recebendo uma chamada conforme sua opção de escolha. Outra opção de confirmar sua conta é informando um cartão de crédito.

Criando um novo Aplicativo

Após ter registrado usa conta do facebook como desenvolvedor será redirecionado automaticamente para a tela de criação de um novo aplicativo.

Outra opção para chegar na tela de criação de um novo aplicativo, acesse http://developers.facebook.com e clique no menu My Apps -> Add a New App.

Na tela de criação de um novo App, selecione a opção WWW -> Site, conforme imagem:

fb-new-app

Na tela seguinte, informa o nome do seu aplicativo e clique no botão Create New Facebook App ID conforme imagem:

fb-new-app-2

Na tela seguinte escolha uma categoria no qual o seu aplicativo se enquadre e clique no botão Create App ID:

fb-new-app3

Em seguida role a tela até o final, insira a URL onde o seu aplicativo será hospedado e clique em Next. Inicialmente o domínio inserido pode apontar para o seu ambiente local de desenvolvimento (veja mais abaixo como configurar). Posteriormente quando publicar o seu app em um outro servidor, produção por exemplo, basta alterar o valor deste campo na área de Settings do Aplicativo.

fb-new-app4

Independente se seu aplicativo ficar em http://www.minha-app-facebook.com.br/app1.php ou http://www.minha-app-facebook.com.br/app2.php , etc. Insira apenas o domínio neste campo e não a URL “completa”. Qualquer caminho usado dentro desse domínio será um caminho válido para o seu app.

É importante lembrar que seu você estiver usando uma porta diferente do padrão HTTP (80), deve ser informado no Site URL. Por exemplo, no caso da porta 8080: http://www.minha-app-facebook.com.br:8080

Neste momento o seu aplicativo já se encontra criado no Facebook.

Configurando ambiente local de desenvolvimento

Caso não tenha um servidor próprio e queira testar o aplicativo na sua própria estação de trabalho, configure o arquivo hosts da sua máquia conforme exemplo abaixo:

127.0.0.1    www.minha-app-facebook.com.br

Além dessa configuração no hosts, será necessário ter um ambiente configurado com no mínimo Apache e PHP. Sugiro as opções EasyPHP ou Xampp no caso do Windows. No Linux, basta configurar Apache ou Nginx com PHP.

Obtendo o App ID e o App Secret

Antes de continuarmos com a criação do código fonte, vamos ver como obter o App ID e o App Secret do seu aplicativo recém-criado para podermos configurar e utilizar o SDK.

Acesse o endereço http://developers.facebook.com, clique no menu My Apps -> MenuNovoApp (nome que você deu ao seu applicativo). Irá cair em uma tela conforme a figura abaixo.

fb-app-dashboard-1

Para obter o App Secret, clique em “Show” e informe a senha do seu usuário do facebook.

Caso precise alterar o Site URL (URL onde seu aplicativo esta hospedado), Clique no menu lateral Settings.

Criando seu aplicativo usando SDK para PHP

A maneira mais eficiente de instalar o novo SDK para PHP do facebook é através do composer. Crie o arquivo composer.json com o seguinte conteúdo:

{
  "require" : {
    "facebook/php-sdk-v4" : "~5.0"
  }
}

Instalando o composer:

curl -sS https://getcomposer.org/installer | php

Instalando o sdk:

php composer.phar install

Para testar o seu aplicativo, crie um arquivo php com o conteúdo abaixo no seu servidor. Lembrando-se que você dever parametrizar o App ID e App Secret (linhas 11 e 12):

Também é necessário parametrizar corretamente o $redirect_url fazendo que ele aponte para o próprio script. (Linha 65)

<?php
session_start(); // Sessao do php deve estar ativa
 
// datetimezone
date_default_timezone_set('America/Sao_Paulo');
 
// autoloader gerado pelo composer
require_once "vendor/autoload.php";
 
// configurar APP_ID e SECRET
define('APP_ID', '');
define('APP_SECRET', '');

// instancia
$fb = new Facebook\Facebook([
	'app_id'     => APP_ID,
	'app_secret' => APP_SECRET,
    'default_graph_version' => 'v2.4'
]);

if(isset($_SESSION['fb_access_token'])) {
    $accessToken = $_SESSION['fb_access_token'];

    // verifica validade e expiracao do token
    $oAuth2Client = $fb->getOAuth2Client();
    $tokenMetadata = $oAuth2Client->debugToken($accessToken);

    // valida token
    try {
        $tokenMetadata->validateAppId(APP_ID);
        $tokenMetadata->validateExpiration();

    } catch(Facebook\Exceptions\FacebookSDKException $e) {
        unset($accessToken);
        unset($_SESSION['fb_access_token']);
    }
} else {

    $helper = $fb->getRedirectLoginHelper();
    try {
        $accessToken = $helper->getAccessToken();
    } catch(Facebook\Exceptions\FacebookResponseException $e) {
        echo 'Graph returned an error: ' . $e->getMessage();
        exit;
    } catch(Facebook\Exceptions\FacebookSDKException $e) {
        echo 'Facebook SDK returned an error: ' . $e->getMessage();
        exit;
    }
}

if(isset($accessToken)) {
    // Logged in!
    $_SESSION['fb_access_token'] = (string) $accessToken;

    try {
        $response = $fb->get('/me?fields=id,name', $accessToken);

        echo '<pre>';
        print_r($response->getDecodedBody());
        echo '</pre>';

    } catch(Facebook\Exceptions\FacebookResponseException $e) {
        echo 'Graph returned an error: ' . $e->getMessage();
        exit;
    } catch(Facebook\Exceptions\FacebookSDKException $e) {
        echo 'Facebook SDK returned an error: ' . $e->getMessage();
        exit;
    } 
} else {
    $helper = $fb->getRedirectLoginHelper();

    $redirect_url = 'http://facebook-codes.local/v5/login.php'; 
    $loginUrl = $helper->getLoginUrl($redirect_url);
    echo '<a href="' . $loginUrl . '">Log in with Facebook!</a>';
}

Parabéns

Acredito que esse código seja uma aplicação mínima do Login de Facebook para PHP usando o SDK v4.0.x v5. Ela simplesmente conecta o usuário com o facebook, solicita que o usuário aceite o aplicativo e imprime na tela os dados básicos do usuário. Ele mantém a sessão do usuário com o aplicativo do facebook salva na sessão. Se fizer o refresh na página o app verifica se já existe uma sessão salva e irá reutiliza-la.

Indo Além

Facebook App: Requisitando permissões pela API do PHP

Please follow and like us:

Comments

  1. By CHARLES

    • mm By Douglas V. Pasqua

    • mm By Douglas V. Pasqua

        • mm By Douglas V. Pasqua

  2. By André

    • mm By Douglas V. Pasqua

    • mm By Douglas V. Pasqua

    • mm By Douglas V. Pasqua

  3. By Miguel

    • mm By Douglas V. Pasqua

    • mm By Douglas V. Pasqua

  4. By Pedro

    • mm By Douglas V. Pasqua

    • mm By Douglas V. Pasqua

    • mm By Douglas V. Pasqua

  5. By Robson

    • mm By Douglas V. Pasqua

      • By Robson

    • mm By Douglas V. Pasqua

  6. By Gabriel Freitas

    • mm By Douglas V. Pasqua

      • By Gabriel Freitas

        • By Gabriel Freitas

          • mm By Douglas V. Pasqua

          • By Gabriel Freitas

    • mm By Douglas V. Pasqua

        • By Gabriel Freitas

          • mm By Douglas V. Pasqua

  7. By Gabriel Freitas

    • mm By Douglas V. Pasqua

  8. By Davi Lima

    • mm By Douglas V. Pasqua

      • By Davi Lima

      • By Davi Lima

        • mm By Douglas V. Pasqua

          • By Davi Lima

  9. By Leandro

    • mm By Douglas V. Pasqua

    • mm By Douglas V. Pasqua

  10. By Pedro

  11. By Pedro

    • mm By Douglas V. Pasqua

  12. By Tatiana

    • mm By Douglas V. Pasqua

  13. By Sandro

    • mm By Douglas V. Pasqua

      • By Sandro

        • mm By Douglas V. Pasqua

    • mm By Douglas V. Pasqua

  14. By cacamaua

    • mm By Douglas V. Pasqua

  15. By Rodrigo

    • mm By Douglas V. Pasqua

    • mm By Douglas V. Pasqua

    • mm By Douglas V. Pasqua

  16. By Edmar Souza

    • mm By Douglas V. Pasqua

  17. By Sandro

    • mm By Douglas V. Pasqua

  18. By Kleber Oliveira

Follow

Get every new post on this blog delivered to your Inbox.

Join other followers: