2009-03-27 3 views
86

Tengo un sitio de blog escrito en php y publica nuevas publicaciones en Twitter y un blog de ping automáticamente bajo el capó usando simples solicitudes http post pasadas usando php rizo.Cómo publicar en el muro en una página de Facebook (no en el perfil)

Tengo una página de Facebook para el sitio de blog y quiero que las actualizaciones se publiquen en la pared de la página, ¿hay alguna manera sencilla de hacerlo?

Lo que realmente quiero es una url y un conjunto de parámetros para parcelar como una solicitud HTTP posterior.

Tenga en cuenta que esto es para publicar en la pared en una nueva página de estilo, no en un perfil.

Gracias de antemano.

+0

¿Ha probado el Wiki Facebook Developer en http://wiki.developers.facebook.com/index.php/Main_Page o en su sitio de desarrolladores en otros lugares http: //developers.facebook .com /? ref = pf? – DOK

+0

No estoy en el desarrollo de Facebook, pero creo que primero tienes que escribir una aplicación de fb para que te autoricen a hacerlo. – sepehr

Respuesta

5

No puede publicar automáticamente en las paredes de Facebook sin crear una aplicación y usar el editor de fuentes con plantilla como señaló Frank.

Lo único que puede hacer es usar los widgets 'compartir' que proporcionan, que requieren la interacción del usuario.

3

Si su blog genera una fuente RSS, puede usar la aplicación "RSS Graffiti" de Facebook para publicar esa fuente en su muro en Facebook. También hay otras aplicaciones RSS de Facebook; sólo la búsqueda "Facebook para aplicaciones RSS" ...

65

Obtener PHP SDK desde github y ejecute el siguiente código:

<?php 
$attachment = array(
    'message' => 'this is my message', 
    'name' => 'This is my demo Facebook application!', 
    'caption' => "Caption of the Post", 
    'link' => 'http://mylink.com', 
    'description' => 'this is a description', 
    'picture' => 'http://mysite.com/pic.gif', 
    'actions' => array(
     array(
      'name' => 'Get Search', 
      'link' => 'http://www.google.com' 
     ) 
    ) 
); 

$result = $facebook->api('/me/feed/', 'post', $attachment); 

el código anterior a publicar el mensaje en su muro ... y si desea publicar en su muro de amigos u otros y luego reemplace me con el Id de usuario de Facebook de ese usuario ... para obtener más información, consulte la documentación de la API.

+0

ese código funciona muy bien !, pero en el post no hay imagen ... ¿Qué me falta aquí? ¡Gracias! – Diego

+0

@Diego revisa la URL de las fotos. en el ejemplo anterior es mysite.com/pic.gif. por lo tanto, buscará la foto en la url dada. así que intente configurarlo. por favor verifique la documentación de fb para cualquier cambio en los parámetros, ya que la última vez que trabajé en el frente de FB fue en agosto de 2010. –

+0

es $ facebook una variable incorporada en la instalación de php? si no, ¿cómo se crea la instancia $ facebook? – sadmicrowave

8

Harish tiene la respuesta aquí - excepto que se debe solicitar permiso al autenticar manage_pages y luego usar el page-id en lugar de me al publicar ....

$result = $facebook->api('page-id/feed/','post',$attachment); 
+1

pero debe necesitar el token de acceso a la página para publicar como página –

9

Esto funciona para mí:

try { 
     $statusUpdate = $facebook->api('/me/feed', 'post', 
       array('name'=>'My APP on Facebook','message'=> 'I am here working', 
       'privacy'=> array('value'=>'CUSTOM','friends'=>'SELF'), 
       'description'=>'testing my description', 
       'picture'=>'https://fbcdn-photos-a.akamaihd.net/mypicture.gif', 
       'caption'=>'apps.facebook.com/myapp','link'=>'http://apps.facebook.com/myapp')); 
} catch (FacebookApiException $e) { 
     d($e); 
} 
+0

Tengo un problema con OAuth, error 200. Mi aplicación pregunta por manage_pages, publish_actions, publish_stream ... ¿Alguna idea? –

0

Puede realizar llamadas de API seleccionando el método HTTP y estableciendo parámetros opcionales:

$facebook->api('/me/feed/', 'post', array(
    'message' => 'I want to display this message on my wall' 
)); 

Enviar mensaje al muro de Facebook:

Incluya el archivo fbConfig.php para conectar API de Facebook y obtener el token de acceso .

Publicar mensaje, nombre, enlace, descripción y la imagen se enviará a la pared de Facebook. Se mostrará el estado de envío posterior.

Si el token de acceso FB ($ accessToken) no está disponible, la URL de Facebook Login se generará y el usuario serán redireccionados a la página de inicio de sesión FB .

Post to facebook wall php sdk

<?php 
//Include FB config file 
require_once 'fbConfig.php'; 

if(isset($accessToken)){ 
    if(isset($_SESSION['facebook_access_token'])){ 
     $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); 
    }else{ 
     // Put short-lived access token in session 
     $_SESSION['facebook_access_token'] = (string) $accessToken; 

     // OAuth 2.0 client handler helps to manage access tokens 
     $oAuth2Client = $fb->getOAuth2Client(); 

     // Exchanges a short-lived access token for a long-lived one 
     $longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($_SESSION['facebook_access_token']); 
     $_SESSION['facebook_access_token'] = (string) $longLivedAccessToken; 

     // Set default access token to be used in script 
     $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); 
    } 

    //FB post content 
    $message = 'Test message from CodexWorld.com website'; 
    $title = 'Post From Website'; 
    $link = 'http://www.codexworld.com/'; 
    $description = 'CodexWorld is a programming blog.'; 
    $picture = 'http://www.codexworld.com/wp-content/uploads/2015/12/www-codexworld-com-programming-blog.png'; 

    $attachment = array(
     'message' => $message, 
     'name' => $title, 
     'link' => $link, 
     'description' => $description, 
     'picture'=>$picture, 
    ); 

    try{ 
     //Post to Facebook 
     $fb->post('/me/feed', $attachment, $accessToken); 

     //Display post submission status 
     echo 'The post was submitted successfully to Facebook timeline.'; 
    }catch(FacebookResponseException $e){ 
     echo 'Graph returned an error: ' . $e->getMessage(); 
     exit; 
    }catch(FacebookSDKException $e){ 
     echo 'Facebook SDK returned an error: ' . $e->getMessage(); 
     exit; 
    } 
}else{ 
    //Get FB login URL 
    $fbLoginURL = $helper->getLoginUrl($redirectURL, $fbPermissions); 

    //Redirect to FB login 
    header("Location:".$fbLoginURL); 
} 

Refrences:

https://github.com/facebookarchive/facebook-php-sdk

https://developers.facebook.com/docs/pages/publishing/

https://developers.facebook.com/docs/php/gettingstarted

http://www.pontikis.net/blog/auto_post_on_facebook_with_php

https://www.codexworld.com/post-to-facebook-wall-from-website-php-sdk/

+0

Gracias. ¿Has probado el código? *** Los fragmentos de vista previa del enlace personalizado *** ahora están obsoletos, por lo que el código no se publicará en una página (https://developers.facebook.com/blog/post/2017/06/27/API-Change-Log- Modifying-Link-Previews /) – user919426

Cuestiones relacionadas