Necesita los permisos publish_stream,manage_pages
. El código es algo como:
<?php
// This code is just a snippet of the example.php script
// from the PHP-SDK <https://github.com/facebook/facebook-php-sdk/blob/master/examples/example.php>
require '../src/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'app_id',
'secret' => 'app_secret',
));
// Get User ID
$user = $facebook->getUser();
if ($user) {
try {
$page_id = 'page_id';
$page_info = $facebook->api("/$page_id?fields=access_token");
if(!empty($page_info['access_token'])) {
$args = array(
'access_token' => $page_info['access_token'],
'message' => "I'm a Page!"
);
$post_id = $facebook->api("/$page_id/feed","post",$args);
} else {
$permissions = $facebook->api("/me/permissions");
if(!array_key_exists('publish_stream', $permissions['data'][0]) ||
!array_key_exists('manage_pages', $permissions['data'][0])) {
// We don't have one of the permissions
// Alert the admin or ask for the permission!
header("Location: " . $facebook->getLoginUrl(array("scope" => "publish_stream, manage_pages")));
}
}
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
// Login or logout url will be needed depending on current user state.
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl(array('scope'=>'manage_pages,publish_stream'));
}
// ... rest of your code
?>
que he escrito y en profundidad tutorial sobre esto: How To: Post On Facebook Page As Page Not As Admin User Using PHP-SDK
Es necesario que el mensaje fue firmado como pertenecientes a la aplicación (o cualquier página de Facebook), en vez que el usuario de Facebook. Imagine la siguiente situación: 1. El usuario de la aplicación (¡no Facebook!) Realiza alguna acción en él; 2. La aplicación agrega un mensaje sobre lo que acaba de suceder en su propio muro o página de Facebook. Estrictamente hablando, no es necesario que el usuario de la aplicación esté registrado en Facebook. Solo es necesario que la aplicación en Facebook tenga la capacidad de publicar mensajes en la pared de la aplicación Y como aplicación como autor. – WASD42