Muitos sites publicam informações sobre novos materiais nas redes sociais, isso pode ser feito no Facebook. Supõe-se que você já tenha criado o
aplicativo e especificado os hosts permitidos para o redirecionamento OAuth na guia "Avançado" do item de menu "Configurações". Portanto, iniciamos a sessão com a função session_start (), quem precisar pode ativar a saída de erro se estiver desativado.
error_reporting(E_ALL); ini_set("display_errors", 1);
Em seguida, faça o download da biblioteca PHP SDK (que está no github) e extraia a pasta src (que pode ser renomeada). Em seguida, especifique o caminho para o carregador automático.
require_once __DIR__ . '/_src/autoload.php';
Agora crie uma instância da classe do Facebook.
$fb = new Facebook\Facebook([ 'app_id' => '1234567890123456',
Chamamos o assistente para executar a autorização, especifique as permissões necessárias para publicar na página.
$helper = $fb->getRedirectLoginHelper();
Depois que você for redirecionado para o site do Facebook, onde precisará fazer login, siga o link especificado na função getLoginUrl (). Aqui, mais uma vez, você chama o assistente de quem você obtém o usuário access_token.
$helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch(Facebook\Exceptions\FacebookResponseException $e) { echo 'Graph : ' . $e->getMessage(); exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { echo 'Facebook SDK : ' . $e->getMessage(); exit; } if (isset($accessToken)) $_SESSION['facebook_access_token'] = (string) $accessToken; elseif ($helper->getError()) exit;
Se você tentar postar na página com esse token, o erro "Erro de permissões" será retornado, pois isso requer um token de página. Para obtê-lo, você precisa chamar a função get () do objeto do Facebook e passar dois parâmetros para ele: o URL da solicitação de token da página que contém o ID da página na qual você deseja postar e o access_token anteriormente do usuário.
try { $response = $fb->get('/id_?fields=access_token', $_SESSION['facebook_access_token']); } catch (Facebook\Exceptions\FacebookResponseException $e) { echo 'Graph : ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { echo 'Facebook SDK : ' . $e->getMessage(); exit; }
O token recebido terá uma duração ilimitada. As informações do token estão disponíveis através do
depurador . Agora você pode tentar postar uma mensagem.
$str_page = '/1234567890123456/feed'; $feed = array('message' => ''); try { $response = $fb->post($str_page, $feed, 'access_token_'); } catch (Facebook\Exceptions\FacebookResponseException $e) { echo 'Graph : ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { echo 'Facebook SDK : ' . $e->getMessage(); exit; } $graphNode = $response->getGraphNode(); echo ', id: ' . $graphNode['id'];
Se necessário, você pode sair do Facebook.
$helper = $fb->getRedirectLoginHelper(); $logoutUrl = $helper->getLogoutUrl($_SESSION['facebook_access_token'], 'url____'); echo '<a href="' . htmlspecialchars($logoutUrl) . '"></a>';