Como publicar en facebook como página mediante su API con PHP
Existen muchos códigos de ejemplo por internet de como publicar en facebook mediante PHP, lo que si que no es fácil encontrar es como hacerlo en una página de la que eres administrador con el perfil de esa misma página; eso vengo a explicar en este tutorial.
Este es un ejemplo de como funciona:
Para realizar este ejercicio debes tener unos conocimientos mínimos de programación y un hosting.
Comenzamos:
Lo primero que tienes que hacer es crear una aplicación en facebook, eso lo haces en este enlace https://developers.facebook.com/apps
Le damos un nombre a la aplicación y una url por si esta fuese a interactuar con usuarios.

Pasamos el Captcha y llegamos al panel de configuración de la aplicación, como ya tenemos el ID de la aplicación y el ID secreto para poder utilizar la aplicación necesitamos un token y configurar los permisos que requerirá la aplicación al usuario y los permisos que le damos a la aplicación para publicar.
En rojo se destacan los IDs de nuestra aplicación, ahora pinchamos a la izquierda para configurar los permisos, donde pone Use Graph API Explorer

Pinchamos en GET ACCESS TOKEN y configuramos.
Los permisos al usuario nos dan lo mismo, es que va a ver la aplicación de nosotros.
Lo que si es importante es en la pestaña de la derecha dar permiso para manejar páginas (manage_pages) y para publicar en los muros (publish_stream).

Pinchamos en coger el token y nos aparece una ventana emergente en la que nos avisa de que hará la aplicación y nos pregunta si aceptamos (la aplicación nos pedirá lo que nosotros le digamos que nos pida).

Acto seguido nos pedirá permiso para administrar nuestras páginas, como le hemos indicado nosotros en la pestaña de la derecha manage_page.

Una vez hecho esto el navegador nos devuelve a la página de configuración donde habíamos solicitado el token y nos facilita uno.

Ya tenemos la parte de facebook realizada, ahora toca crear el código.
Para ello nos descargamos la biblioteca facebook-PHP-SDK de https://github.com/facebook/facebook-php-sdk abrimos el comprimido y utilizamos solamente la carpeta src.
En el comprimido hay ejemplos, pero a nosotros con esto nos sirve.
Esa carpeta src la subimos a nuestro hosting y la dejaremos al lado de donde pretendamos ejecutar nuestro código.
Creamos un archivo index.php y le pegamos el siguiente código:
<?php
require_once 'src/facebook.php'; //Esto llama a la carpeta con el parse que nos descargamos antes
$app_id = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx'; // Sustituimos las X por el ID de nuestra aplicación
$app_secret = 'xxxxxxxxxxxxxxxxxxxxxxxx'; // Sustituimos las X por el Secret de nuestra aplicación
$token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; // ponemos nuestro token
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => false
));
$req = array(
'access_token' => $token,
'message' => 'Mensaje de prueba con mi aplicación');
$res = $facebook->api('/me/feed', 'POST', $req);
?>
Si ahora ejecutamos este archivo index.php en nuestro servidor publicaremos en nuestro muro de facebook el mensaje a través de nuestra aplicación.
Siguiente paso:
Modificamos la línea
$res =
$facebook->api('/me/feed', 'POST',
$req);
Y cambiamos el
me por el ID de una página publicaremos el mensaje en esa página
$res =
$facebook->api('/ID_DE_TU_PÁGINA/feed', 'POST',
$req);
Con esto publicas el mensaje en la página indicada
Publicamos ahora un enlace
Para publicar un enlace añadimos los parámetros del título, el link, el comentario inferior y la imagen en miniatura que sale a la izquierda.
$req = array(
'access_token' =>
$token,
'message' => 'Mensaje de prueba con enlace',
'name' => 'Tutorial de aplicación para facebook',
'link' => 'http://el-internauta-de-leon.blogspot.com.es/2012/12/como-publicar-en-facebook-como-pagina.html',
'description' => 'Tutorial de minipunk para aplicación en facebook',
'picture' => 'https://si0.twimg.com/profile_images/1615997950/avatar-minipunk.jpg');
$res =
$facebook->api('/me/feed', 'POST',
$req);
Esto hará que al ejecutarse el archivo se publique ese enlace en nuestro muro.
Bien, el problema es que si ahora sustituimos en /me/feed por el /ID_DE_PÁGINA/feed publicaremos en la página, pero como usuario, no como página y lo publicado aparecerá donde aparece lo que publica cualquier otro usuario.
Para poder publicar como página el token que utilizamos no es el adecuado, ya que nos lo facilitó a nuestro usuario, tenemos que conseguir el token de cada página que administramos, y es precisamente eso lo que me ha costado mucho averiguar, no hay mucha información al respecto publicada, motivo de más para publicarlo hoy en este blog.
Para conseguir los token de las páginas que administramos debemos utilizar el token que tenemos y añadirlo a la siguiente URL
https://graph.facebook.com/me/accounts?access_token=NUESTRO TOKEN
Nuestro token lo veíamos en la imagen anterior

Al colocar esa URL en el navegador, sumándole nuestro token, facebook nos devuelve un archivo .json como el de la siguiente imagen en el cual nos indica el token de cada página y el ID de la misma (además de categoria, permisos y alguna otra información).

Ahora en nuestro código modificamos el $token = por el de la página en la que queremos publicar y en la línea
$res =
$facebook->api('/me/feed', 'POST',
$req);
cambiaremos el
me/feed y colocaremos el ID de la misma página que el token.
A partir de aquí ya se puede crear un formulario que envíe los parámetros, una frase aleatoria y ejecutarlo mediante el CRON de nuestro servidor, utilizar las variables de un feed de un blog o lo que se nos ocurra.
Cualquier duda puedes dejar un comentario, trataré de responder en la medida de lo posible.
Por otro lado si ves una pregunta en los comentarios y conoces la respuesta todos te estaremos muy agradecidos si publicas lo que sabes.