Raph Ocean

Facebook SDK - Implementação Real

🚀 Facebook SDK - Implementação Real

⚠️ IMPORTANTE: Esta implementação requer um App ID real do Facebook. Substitua "SEU_APP_ID_AQUI" pelo seu App ID verdadeiro.

📋 Pré-requisitos

  1. App criado no Facebook Developers
  2. Domínio configurado nas configurações do app
  3. Permissões solicitadas no App Review (se necessário)

🔧 Configuração

🔐 Autenticação

📊 Dados da Página

📝 Códigos para Implementação

HTML Completo
JavaScript Apenas
Permissões

HTML Completo com SDK

<!DOCTYPE html>
<html>
<head>
    <title>Facebook SDK</title>
</head>
<body>
    <div id="fb-root"></div>
    <script async defer crossorigin="anonymous" 
            src="https://connect.facebook.net/pt_BR/sdk.js"></script>
    
    <script>
        window.fbAsyncInit = function() {
            FB.init({
                appId: 'SEU_APP_ID_AQUI',
                cookie: true,
                xfbml: true,
                version: 'v18.0'
            });
            
            FB.AppEvents.logPageView();
            
            // Verificar status do login
            FB.getLoginStatus(function(response) {
                statusChangeCallback(response);
            });
        };
        
        function statusChangeCallback(response) {
            if (response.status === 'connected') {
                console.log('Logado e conectado');
                testAPI();
            } else {
                console.log('Não logado');
            }
        }
        
        function checkLoginState() {
            FB.getLoginStatus(function(response) {
                statusChangeCallback(response);
            });
        }
        
        function testAPI() {
            FB.api('/me', function(response) {
                console.log('Olá ' + response.name + ', obrigado por usar nossa aplicação.');
            });
        }
    </script>
    
    <button onclick="FB.login(checkLoginState, {scope: 'pages_read_engagement,pages_show_list'});">
        Login no Facebook
    </button>
</body>
</html>

Apenas JavaScript

// Inicialização
window.fbAsyncInit = function() {
    FB.init({
        appId: 'SEU_APP_ID_AQUI',
        cookie: true,
        xfbml: true,
        version: 'v18.0'
    });
};

// Login com permissões
function loginWithPermissions() {
    FB.login(function(response) {
        if (response.authResponse) {
            console.log('Login bem-sucedido');
            getUserPages();
        } else {
            console.log('Login cancelado');
        }
    }, {
        scope: 'pages_read_engagement,pages_show_list,pages_manage_posts'
    });
}

// Obter páginas do usuário
function getUserPages() {
    FB.api('/me/accounts', function(response) {
        if (response && !response.error) {
            console.log('Minhas páginas:', response.data);
            response.data.forEach(page => {
                console.log(`Página: ${page.name} (ID: ${page.id})`);
            });
        }
    });
}

// Obter dados específicos da página
function getPageData(pageId) {
    FB.api(`/${pageId}`, {
        fields: 'name,about,category,fan_count,posts{message,created_time,likes.summary(true)}'
    }, function(response) {
        if (response && !response.error) {
            console.log('Dados da página:', response);
        } else {
            console.error('Erro ao obter dados:', response.error);
        }
    });
}

Permissões Necessárias

// Permissões básicas (sempre funcionam)
'pages_read_engagement'    // Ler engajamento das páginas
'pages_show_list'          // Listar páginas que você administra

// Permissões avançadas (podem precisar de aprovação)
'pages_manage_posts'       // Gerenciar posts
'pages_manage_metadata'    // Gerenciar metadados
'pages_messaging'          // Mensagens da página

// Para páginas públicas de terceiros (App Review obrigatório)
- Page Public Content Access (recurso)
- Page Public Metadata Access (recurso)

// Exemplo de uso
FB.login(function(response) {
    if (response.authResponse) {
        // Verificar permissões concedidas
        FB.api('/me/permissions', function(permResponse) {
            permResponse.data.forEach(perm => {
                console.log(`${perm.permission}: ${perm.status}`);
            });
        });
    }
}, {
    scope: 'pages_read_engagement,pages_show_list,pages_manage_posts'
});

🔍 Diagnóstico dos Seus Erros

Erro 1: Página não encontrada com identificador 'livenews488'
Solução: Use o ID numérico da página, não o username
Erro 2: Object with ID '100064122323058' does not exist
Solução: Verifique se o ID está correto e se você tem permissões
Dica: Use FB.api('/livenews488') para converter username em ID