2011-03-16 15 views
12

¿Es posible publicar en un muro de Facebook como aplicación y no como usuario? Por lo que yo entiendo, una aplicación no es un usuario válido para Facebook, pero hay numerosos comentarios sobre publicar como página y no como usuario o aplicación.Publicar en un muro de Facebook como Página, no como usuario

¿Cómo puedo hacerlo usando PHP Facebook API?

Respuesta

4

Primero debe tener un usuario autorizar a través de facebook connect y solicitar el permiso manage_pages como parte de esta solicitud. Puede usar este permiso para obtener un token y un secreto para la página en cuestión. Luego los usa para autorizar solicitudes en lugar del token/secreto que recibió para el usuario.

Mira la sección "Página de acceso" de esta página para algo de información adicional: http://developers.facebook.com/docs/authentication/

+0

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

10

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

+0

Esto todavía necesita un usuario para iniciar sesión en Facebook, ¿verdad? Recibo "Se debe usar un token de acceso activo para consultar información sobre el usuario actual". error:/No puedo decir: "¡Hola, aplicación, haz una publicación en esa pared!"? :] – WASD42

+0

@ WASD42: como puede ver '/ me/accounts' aquí necesita el administrador de la página para que pueda obtener de sus' cuentas' la página 'access_token' para usarla. – ifaour

+2

¡Probablemente también deba agregar el permiso 'offline_access'! – vinzenzweber

Cuestiones relacionadas