domingo, 24 de abril de 2016

Publicar en nuestro muro de Facebookc con la API

Este es un metodo para publicar un post en nuestro muro con la API Graph API de Facebook y PHP.
Cómo se mencionó anteriormente, para realizar cualquier operación con la API de Facebook debemos comenzar en crear una aplicación en la Graph API de FaceBook los cuales son unos sencillos pasos que hay que seguir para obtener unos tokens de autenticación y dar algunos parámetros de seguridad a nuestra cuenta que los puedes seguir en el enlace anterior.
Una vez hecho esto, veremos que aun nos falta algunos pasos extras para poder publicar un simple post en nuestro muro lo cual no es tan sencillo como vimos en el caso de Twitter.

0.0 Pasos para publicar un post en nuestro muro de Facebook con PHP

En esta entrada aprenderemos a:

1.0 Descargando la SDK de Facebook para PHP

Primero descarguemos la SDK de Facebook para PHP que nos permitirá emplear la API de Facebook; para ello tenemos el siguiente enlace Getting started with the Facebook SDK for PHP.
Descomprimimos y ubicamos la carpeta que nos generó en nuestro servidor HTTP; en nuestro caso la aplicación Facebook estará en la siguiente ubicación:
/var/www/html/test/fbtest

2.0 Configurando nuestro proyectoPHP

Nuestro aplicacion PHP consta de dos archivos:
  1. La ventana de autenticación: index.php.
  2. La ventada para el envío del post: post.php.
En ambos archivos debemos tener definida la siguiente cabecera que contiene referencia a los archivos de la SDK de la API de Facebook:
/var/www/html/test/fbtest

2.1 Obteniendo los Tokens

Vamos a la página de desarrolladores de Facebook en donde ya tenemos nuestra aplicación creada y nos vamos a la sección de Dashboard y copiamos la "API ID" y la "APP Secret":
dashboard facebook

3.0 Login en nuestra cuenta de Facebook

En ambos archivos, debemos de colocar los tokens de acceso obtenidos anteriormente desde la página de desarrolladores de Facebook:
$fb = new Facebook\Facebook([
'app_id' => '{app-id}',
'app_secret' => '{app-secret}',
'default_graph_version' => 'v2.2',
]);
Una vez vinculada nuestra cuenta de Facebook con la aplicaciónPHPinvocamos al método que nos permitirá obtener el token de acceso para solicitar permisos a nuestra cuenta; para eso empleamos el método getRedirectLoginHelper:
$helper = $fb->getRedirectLoginHelper();
Especificamos los permisos para publicar un post entre otros:
$permissions = ['email', 'user_likes', 'publish_actions', 'user_managed_groups'];
Puedes ver la lista completa de los permisos en el siguiente enlace: Permissions Reference - Facebook Login junto con su descripción.
La API de Facebook cuenta con un método que permite la autenticación y redirige a la página que vamos a configurar que es la que va a enviar el post; este método es el getLoginUrl:
$loginUrl = $helper->getLoginUrl('https://example.com/fb-callback.php', $permissions);
El código completo del index.php:
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
session_start();
require 'Facebook/config.php';
define('FACEBOOK_SDK_V4_SRC_DIR', __DIR__ . '/Facebook/');
$facebook = new Facebook\Facebook(array(
'app_id' => $config['App_ID'],
'app_secret' => $config['App_Secret'],
'default_graph_version' => 'v2.3'
));
$helper = $facebook->getRedirectLoginHelper();
$permissions = ['email', 'user_likes', 'publish_actions', 'user_managed_groups'];
$loginUrl = $helper->getLoginUrl('http://localhost/test/fbtest/post.php', $permissions);
if (isset($_GET['redirect'])) {
header_remove();
header("Location: " . $loginUrl);
}

4.0 Publicando un post en nuestromuro de Facebook

Finalmente llegamos a la parte crucial y el objetivo de esta entrada, la cual es publicar un post en nuestro muro; para esto es el archivo post.php que definimos a continuación.
Una vez autenticado y ubicados en la página desde la cual vamos apublicar el post (redirigida de manera automática al emplear elgetLoginUrl).
Obtenemos el token de acceso (método getAccessToken) y publicamos el post mediante el método post pasando como parámetros un array con un mensaje y el link:
$helper = $fb->getRedirectLoginHelper();
try {
$accessToken = $helper->getAccessToken();
$linkData = [
'link' => 'http://www.desarrollolibre.net/blog/tema/50/html/uso-basico-del-canvas',
'message' => "Hola Mundo",
];
$fb->post('/feed', $linkData, $accessToken);
} catch (Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
} catch (Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
}
Además del link y el message se pueden enviar otros parámetros como una imagen los cuales puedes ver en el siguiente enlace: Post /{post-id} - Fields.
El código completo de post.php es:
date_default_timezone_set('UTC');
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
session_start();
require 'Facebook/config.php';
define('FACEBOOK_SDK_V4_SRC_DIR', __DIR__ . '/Facebook/');
$fb = new Facebook\Facebook(array(
'app_id' => $config['App_ID'],
'app_secret' => $config['App_Secret'],
'default_graph_version' => 'v2.3'
));
$helper = $fb->getRedirectLoginHelper();
try {
$accessToken = $helper->getAccessToken();
$linkData = [
'link' => 'http://www.desarrollolibre.net/blog/tema/50/html/uso-basico-del-canvas',
'message' => "Hola Mundo",
];
$fb->post('/feed', $linkData, $accessToken);
} catch (Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
} catch (Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
}

4 Extra: Publicando un post en un grupo de Facebook

Para publicar un post en un grupo del cual formamos parte, primero debemos obtener el identificador de ese grupo en cuestión; para ello existen varias páginas en Internet como Lookup-ID.com.
Con el identificador del grupo en nuestro poder realizamos una pequeña modificación al método post para que quede de la siguiente manera:
$fb->post('/' . $group_id . '/feed', $linkData, $accessToken);
El resto de la estructura del archivo PHP quedaría igual; y esto es todo; con los pasos anteriores podrás publicar un post en Facebook desde PHP.

About the Author

Unknown

Author & Editor

Has laoreet percipitur ad. Vide interesset in mei, no his legimus verterem. Et nostrum imperdiet appellantur usu, mnesarchum referrentur id vim.



::PUBLICIDAD::

Publicar un comentario

 
Coffee Code y SEO © 2016 - Diseñado por | Plantilla de Templateism Blogger Templates