Como postar no feed do facebook em uma página externa com php


Para acessar as informações sobre como usar a API do Facebook para publicar em páginas, você pode visitar a documentação oficial do Facebook para desenvolvedores. Aqui estão os links relevantes:

  1. Página Inicial do Facebook for Developers:
    Facebook for Developers
  2. Documentação da Graph API:
    Graph API Documentation
  3. Publicando em Páginas:
    Publishing to Pages
  4. Obtenção de Tokens de Acesso:
    Access Tokens

Nessa documentação, você encontrará informações sobre como configurar seu aplicativo, obter tokens de acesso e fazer chamadas à API para publicar em páginas do Facebook. É sempre bom revisar a documentação para entender as permissões necessárias e as melhores práticas.

A página do Facebook Developer que fornece informações sobre como publicar posts em uma página é a Graph API Reference. Essa seção detalha como usar a API para fazer publicações, incluindo os parâmetros necessários e exemplos de requisições.

  1. Acesse o endereo abaixo e clique em criar aplicativo
    https://developers.facebook.com/apps

 

2. Escolha a última opção

3. Avance e clique em empresa

 

Essa é a tela inicial do Aplicativo

 

Agora vamos criar um token

Clique em ferramentas / Explorador da Graph Api

 

 

 

Selecione seu aplicativo que criou

 

 

 

Com o Aplicativo selecionado, vamos dar as permissões necessárias.

 

Essas permissões

 

Para publicar em uma página do Facebook usando a Graph API, você precisará de algumas permissões específicas no seu token de acesso. Aqui estão as principais permissões que você deve solicitar:

  1. pages_show_list: Permissão para listar as páginas que você gerencia.
  2. pages_manage_posts: Permissão para publicar e gerenciar publicações nas páginas que você gerencia.
  3. pages_read_engagement (opcional, mas recomendado): Permissão para ler interações nas publicações da página.

https://developers.facebook.com/docs/pages-api/posts

Após isso clique em gerar token vai pedir pra autenticar

 

Logo em seguida, vai mostrar as páginas que você quer postar.  Escolha conforme sua necessidade e avance.

Foi gerado um token temporário

 

Você pode estender esse token pra 3 meses, conforme o vídeo

Para estender clique em
https://developers.facebook.com/tools/debug/accesstoken/

digite seu token atual, depure e solicite no fim da página para estender.

*Use o novo conforme o exemplo

 

Para testar, e vê se deu tudo certo
em cima coloque me?fields=id,name e clique em enviar, se aparecer alguns dados abaixo, funcionou.

 

Vídeos que vi

 

 

 

Se você usar um token de usuário em vez de um token de página, não conseguirá publicar diretamente na página. Aqui estão os passos que você pode seguir para obter um token de página a partir de um token de usuário:

Passos para Obter um Token de Página

  1. Obtenha um Token de Usuário:
    • Use a Graph API Explorer para gerar um token de usuário com as permissões necessárias (pages_manage_posts e pages_read_engagement).
  2. Verifique suas Páginas:
    • Use o token de usuário para fazer uma chamada à API e obter as páginas que você administra:
curl -X GET "https://graph.facebook.com/me/accounts?access_token=YOUR_USER_ACCESS_TOKEN"
  1. Essa chamada retornará uma lista de páginas que você pode gerenciar, juntamente com seus respectivos tokens de página.
  2. Obtenha o Token de Página:
    • A resposta da chamada acima incluirá um access_token para cada página. Esse é o token de página que você deve usar para publicar na página.

Exemplo de Código para Obter o Token de Página

Aqui está um exemplo de como você pode fazer isso em PHP:

com o código abaixo.

$userAccessToken = 'YOUR_USER_ACCESS_TOKEN';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://graph.facebook.com/me/accounts?access_token=$userAccessToken");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

$pages = json_decode($response, true);
if (isset($pages['data'])) {
    foreach ($pages['data'] as $page) {
        echo "Page ID: " . $page['id'] . "\n";
        echo "Page Access Token: " . $page['access_token'] . "\n";
    }
} else {
    echo "Nenhuma página encontrada ou erro: " . $response;
}

 

Assim que conseguir , use abaixo:

 

Código para postar:

<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Publicar no Facebook</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            padding: 20px;
            background-color: #f8f9fa;
        }
        .form-container {
            max-width: 600px;
            margin: auto;
            background: white;
            padding: 20px;
            border-radius: 5px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
        }
        h2 {
            text-align: center;
            margin-bottom: 20px;
            color: #343a40;
        }
        .form-group {
            margin-bottom: 15px;
        }
        label {
            display: block;
            margin-bottom: 5px;
            color: #495057;
        }
        input[type="url"],
        input[type="text"],
        textarea {
            width: 100%;
            padding: 10px;
            border: 1px solid #ced4da;
            border-radius: 5px;
            box-sizing: border-box;
            transition: border-color 0.3s;
        }
        button {
            width: 100%;
            padding: 10px;
            background-color: #007bff;
            color: white;
            border: none;
            border-radius: 5px;
            cursor: pointer;
            transition: background-color 0.3s;
        }
        button:hover {
            background-color: #0056b3;
        }
    </style>
</head>
<body>
    <div class="form-container">
        <h2>Publicar no Facebook</h2>
        <form method="POST">
            <div class="form-group">
                <label for="message">Mensagem:</label>
                <textarea id="message" name="message" rows="3" required></textarea>
            </div>

            <div class="form-group">
                <label for="media_url">Link da Imagem ou Vídeo:</label>
                <input type="url" id="media_url" name="media_url">
            </div>

            <button type="submit">Publicar</button>
        </form>
    </div>

<hr>

<?php

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $facebookPageId = 'xxxxxx'; // Substitua pelo ID da sua página
    $facebookAccessToken = 'xxxxxxx'; // Substitua pelo seu token

    $message = $_POST['message'];
    $mediaUrl = $_POST['media_url'];

    // Publicar no Facebook
    $facebookPublishEndpoint = "https://graph.facebook.com/v11.0/{$facebookPageId}/feed";
    $facebookData = [
        'message' => $message,
 //       'link' => $mediaUrl,
        'pubished' => true,
        'access_token' => $facebookAccessToken
    ];

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $facebookPublishEndpoint);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($facebookData));

    $facebookResponse = curl_exec($ch);
    $facebookHttpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    if ($facebookHttpCode != 200) {
        echo "Erro ao publicar no Facebook: HTTP Code $facebookHttpCode. Resposta: $facebookResponse";
    } else {
        echo "Postagem publicada no Facebook com sucesso!";
    }
}
?>

</body>
</html>

 

 

Categoria: facebook | Tags: , , , | Postado por joemaster em 24/out/2024

<< Anterior

Deixe um comentário

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