Publicar en una página de Facebook como la página (no una persona)

Uso Facebook PHP SDK 3.0.1 (el último actualmente). Lo que necesito hacer es publicar como la identidad de la Página en la Página.

Intenté reemplazar el access_token con el access_token que recibo de la página (/ me / accounts), pero ahora dice que el token no es válido por algún motivo. Las páginas de “suplantación” de Facebook ahora están fuera de línea, y no veo ninguna información en la API con respecto a hacer lo que quiero … tal vez estoy perdido o tal vez no estoy mirando en la dirección correcta …

Aquí está el example.php que modifiqué y uso para archivar esto:

require '../src/facebook.php'; // Create our Application instance (replace this with your appId and secret). $facebook = new Facebook(array( 'appId' => 'xxxxxxxxxxxxx', 'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxx' )); // Get User ID $user = $facebook->getUser(); //Lists all the applications and pages if ($user) { try { // Proceed knowing you have a logged in user who's authenticated. $accounts_list = $facebook->api('/me/accounts'); } catch (FacebookApiException $e) { error_log($e); $user = null; } } $page_selected = 'xxxxxxxxxxxx'; $page_access_token = $accounts_list['data']['0']['access_token']; echo 'page_access_token:' . $page_access_token; api("/$page_selected/feed", 'post', array( 'access_token' => '$page_access_token', 'message' => 'Development Test message', 'link' => 'http://xxxxxxx.com', 'picture' => 'http://img.rephp.com/php/xxxx_logo.gif', 'name' => 'xxxxxxxx Goes Here', 'description'=> 'And the exciting description here!' ) ); //as $_GET['publish'] is set so remove it by redirecting user to the base url } catch (FacebookApiException $e) { echo($e); echo $publishStream; echo 'catch goes here'; } } ?> 

Como no puedo responder mi propia pregunta, edité la pregunta.


Pasé por toda la API …

Solución:

Antes de publicar como la página que necesita para configurar su access_token a la página posee.

 $facebook->setAccessToken($page_access_token); 

simplemente hace eso, y luego todo va como normalmente se esperaría, sin necesidad de modificar la función de publicación y agregar la opción “access_token” para publicar.

1. Primero debes obtener el token de acceso a la página.

 public function getPageToken() { $page_id = "xxxxxxxxxx"; $page_access_token = ""; $result = $this->facebook->api("/me/accounts"); if( !empty($result['data']) ) { foreach($result["data"] as $page) { if($page["id"] == $page_id) { $page_access_token = $page["access_token"]; break; } } } else { $url = "https://www.facebook.com/dialog/oauth?client_id=xxxxxxxxxx&redirect_uri=http://apps.facebook.com/xxxxxx&scope=manage_pages&response_type=token"; echo ""; } return $page_access_token; } 

2. Después de obtener el token de acceso a la página, solo incluye ese token en tu publicación en el código de la pared.

   

3. Recuerde que este código solo publicará su publicación en el muro de la página de fans y los usuarios que les gustó la página de seguidores podrán ver esa publicación a medida que la publicación se publique en su propio feed.

Espero que esto resuelva su problema.