Hoje, vou-vos explicar como se pode publicar conteúdos numa página do facebook utilizando a API. Esta é a primeira parte deste tutorial, na segunda irei explicar como se constrói uma aplicação no facebook para que seja possível publicar conteúdos.
Vamos começar por fazer o download do sdk do facebook que está no github, para isso temos de correr o seguinte comando:
git clone https://github.com/facebook/facebook-php-sdk.git
deverá aparecer uma coisa deste género
Cloning into 'facebook-php-sdk'... remote: Counting objects: 680, done. remote: Compressing objects: 100% (313/313), done. Receiving objects: 100% (680/680), 258.11 KiB | 150 KiB/s, done. remote: Total 680 (delta 329), reused 657 (delta 311) Resolving deltas: 100% (329/329), done.
Uma vez terminado, já têm tudo o que é necessário. Vamos então criar o nosso ficheiro test.php dentro da directoria do SDK.
cd facebook-php-sdk
O que deverão colocar dentro do ficheiro test.php é o seguinte
<?php require "src/facebook.php"; $app_id = ''; $app_secret = ''; $page_id = ''; define('FACEBOOK_APP_ID', $app_id); define('FACEBOOK_SECRET', $app_secret); $user = null; $facebook = new Facebook(array( 'appId' => FACEBOOK_APP_ID, 'secret' => FACEBOOK_SECRET, 'cookie' => true )); $user = $facebook->getUser(); // Get the UID of the connected user, or 0 if the Facebook user is not connected. if($user == 0) { $login_url = $facebook->getLoginUrl($params = array('scope' => "publish_stream,offline_access,read_stream,manage_pages", "response" => "access_token")); echo ("<script> top.location.href='".$login_url."'</script>"); } else { $access_token = $facebook->getAccessToken(); $attachment = array( 'access_token' => $access_token ); $page = $facebook->api('/me/accounts', 'get', $attachment); $message = array( 'access_token' => $page['data'][0]['access_token'], 'message' => "Message", 'name' => "Name", 'link' => "http://blog.resende.biz/", 'description' => "Teste apagar sff" ); $facebook->api('/' . $page_id . '/feed', 'POST', $message); } ?>
Vamos então explicar um pouco o código aqui colocado, começando pelo topo
$app_id = ''; $app_secret = ''; $page_id = ''; define('FACEBOOK_APP_ID', $app_id); define('FACEBOOK_SECRET', $app_secret);
As três variáveis em branco vão ser posteriormente adicionadas com os dados da nossa aplicação do facebook e com a página onde irá ser publicado o conteúdo.
$user = null; $facebook = new Facebook(array( 'appId' => FACEBOOK_APP_ID, 'secret' => FACEBOOK_SECRET, 'cookie' => true )); $user = $facebook->getUser(); // Get the UID of the connected user, or 0 if the Facebook user is not connected.
Esta secção vai buscar o estado do utilizador, verificar se existe algum utilizador "logado" no facebook, ou não. Se retornar o valor "0" na variável "user" então não foi feito o login e aparecerá uma janela de login, como podem ver na secção seguinte
if($user == 0) { $login_url = $facebook->getLoginUrl($params = array('scope' => "publish_stream,offline_access,read_stream,manage_pages", "response" => "access_token")); echo ("<script> top.location.href='".$login_url."'</script>"); }
Caso tenha sido feito o login, então vai buscar o access_token do utilizador
$access_token = $facebook->getAccessToken();
Pede o access_token da página
$attachment = array( 'access_token' => $access_token ); $page = $facebook->api('/me/accounts', 'get', $attachment);
Prepara a mensagem e os seus conteúdos
$message = array( 'access_token' => $page['data'][0]['access_token'], 'message' => "Message", 'name' => "Name", 'link' => "http://blog.resende.biz/", 'description' => "Teste apagar sff" );
e por fim envia a mensagem
$facebook->api('/' . $page_id . '/feed', 'POST', $message);
No próximo tutorial, vou-vos explicar como se cria uma aplicação no facebook para poder publicar o conteúdo.