2012-04-18 18 views
23

Tengo un cliente que desea que se muestre en su sitio web el suministro de noticias/cronograma de Facebook de su empresa. No es una línea de tiempo personal/suministro de noticias, sino de una organización.Visualización de un suministro de noticias/línea de tiempo de Facebook en un sitio web

Todo lo que he leído parece tener algunos años, pero el resultado parece ser: Facebook quiere guardar todos sus datos en sus propios servidores; no quieren que la gente lo exporte, y las personas han sido prohibidas por molesto. (Como digo, esta información tenía varios años).

Lo más cercano que he encontrado es el Activity Feed Plugin, pero eso solo registra las interacciones de otros usuarios con el sitio o una aplicación FB.

¿Alguien ha tenido éxito al exportar sus actualizaciones públicas a un sitio web externo, o tengo que decirle a mi cliente que no se puede hacer?

¡Gracias por cualquier ayuda!

+0

Por si acaso ustedes quieren mostrar el avance de la línea de tiempo de una página de Facebook, encontré un tutorial que explica cómo hacerlo, paso a paso https://www.codeofaninja.com/2014/10/display-facebook-page -feed-on-wordpress-or-website.html – Emkey

Respuesta

31

AFAIK, es posible, de alguna manera. La solución más simple, pero no es el mejor para su situación podría ser la Like Box plugin:

la caja como permite a los usuarios:

ver cuántos usuarios ya gusta esta página web, y cuáles de sus amigos, como también lo
Leer mensajes recientes de la página
igual que la página con un solo clic, sin necesidad de visitar la página

mejor solución: utilizar su Graph API, sin embargo, solo puede leer los datos (como JSON), no tiene la secuencia exactamente replicada en el sitio web de su cliente, no espere poder aplicar los estilos que utiliza Facebook (es decir, no podrá rasparlo)), tendrás que replicarlo o crear tus propios estilos.

Ahora bien, si la página es público y puede ser leído por todos, como en el que no hay reglas de privacidad, a continuación, sólo tiene que llamar a la URL con cualquier señal_acceso válida (puede ser señal_acceso aplicación también):

https://graph.facebook.com/<clientpagename_OR_id>/feed 

o

https://graph.facebook.com/<clientpagename_OR_id>/posts 

dependiendo de qué es exactamente lo que necesita, pruebe los graph api explorer para comprobar que (y también ver el tipo de datos que se devuelven). Cuando hay muchas publicaciones, habrá urls de paginación, que también podrá ver en el explorador.

En caso de que la página no sea pública, necesitará un access_token con el permiso read_stream, por lo tanto, deberá crear un facebook app, de tipo sitio web. Luego, obtenga el administrador de la página de su cliente para autorizar la aplicación, con read_streampermission. Después de eso, puede llamar a las URL con el access_token que recibe después de la autenticación y puede seguir leyendo la secuencia.

https://graph.facebook.com/<clientpagename_OR_id>/posts?access_token=thetoken 

En este caso utilice el PHP SDK, para simplificar la autenticación y llamar a la API gráfica.

Enlaces importantes: Authentication Guide, Real-time-updates.

Buena suerte.

Editar: usted no necesita un token de acceso para acceder a la alimentación o mensajes conexiones, pero donot necesariamente necesita un token de acceso para leer la página en sí objeto, como se da en this documentation.
Nota de la doc:

Para conexiones que requieren un token de acceso, se puede utilizar cualquier token de acceso válida si la página es público y no restringido. Las conexiones en páginas restringidas requieren un token de acceso de usuario y solo son visibles para los usuarios que cumplen los criterios de restricción establecidos (por ejemplo, la edad) en la página.

+0

Las actualizaciones en tiempo real no serán útiles en este momento, porque aún no tiene una conexión para las publicaciones, sin embargo, le he dado el enlace para referencia futura –

+0

He buscado aroun d y no puedo encontrar una sola página "pública" que no requiera un token de acceso. Supongo que necesitas uno, no importa qué. –

+0

hay una página que conozco, que se mencionó recientemente en una pregunta aquí. prueba esta URL en [explorador de gráficos] (https://developers.facebook.com/tools/explorer/?method=GET&path=dominos%2Fposts): 'https: // graph.facebook.com/dominos/posts' o solo en la barra de direcciones del navegador. Además, si crees que quieres otorgarme la recompensa, tendrás que hacerlo [manualmente] (http://stackoverflow.com/faq#bounty), en caso de que el período de 24 horas haya terminado. –

1

Sí, se puede hacer. Primero registre el sitio web en la página de desarrolladores de Facebook. Entonces puedes usar cualquier API adecuada para interactuar con FB. Algunas veces utilicé SpringSocial (ya que estaba trabajando estrechamente con Spring) ... Puedes usar la propia API de FB que también es muy útil. Puedes leer el tutorial here

+0

He revisado la documentación de la API y no puedo ver nada que me permita hacer lo que necesito :( –

+2

Creo que @ bool.dev ha respondido a su pregunta. ... – aProgrammer

+0

Hay algunos plugins de WordPress donde puedes mostrar tu página de Facebook ahora después de agregar un token de acceso. Ayudé a desarrollar este. Http://www.slickremix.com/downloads/feed-them-social- premium-extension/ – SlickRemix

7

Puede recuperar el suministro de noticias de la organización utilizando Graph API de Facebook. La línea de tiempo no se puede recuperar a través de una API pública.

No hay un complemento para hacer esto. Debería llamar al

https://graph.facebook.com/USER_ID/home 

que le da una respuesta JSON.

Luego debe analizar el JSON en un nuevo diseño en la página web de la organización.

manera confusa, llamando

https://graph.facebook.com/USER_ID/feed 

no recupera el suministro de noticias, pero publicaciones en el muro de un usuario, que puede o no puede ser lo que quiera.

Here es un tutorial que describe los aspectos básicos de la configuración de un suministro de noticias en un sitio web con php.

1

Definitivamente se puede hacer. Solo necesita obtener un token de acceso a través de Facebook y luego puede acceder a un feed de publicaciones JSON a través de la API de Facebook.

Tienes que ir al sitio del desarrollador de Facebook y hacer clic en Aplicaciones en la parte superior. Siga los pasos para obtener una aplicación secreta e ID de cliente. Luego sólo tiene que poner en la siguiente URL y volverá a su token de acceso:

https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET

Instrucciones paso a paso aquí: http://smashballoon.com/custom-facebook-feed/access-token/

4

La forma más sencilla de hacerlo es leer el Facebook línea de tiempo de RSS:

function FacebookFeed($pagename, $count, $postlength) { 
$pageID = file_get_contents('https://graph.facebook.com/?ids='.$pagename.'&fields=id'); 
$pageID = json_decode($pageID,true); 
$pageID = $pageID[$pagename]['id']; 

ini_set('user_agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9'); 
$rssUrl = 'http://www.facebook.com/feeds/page.php?format=rss20&id='.$pageID; 
$xml = simplexml_load_file($rssUrl); 
$entry = $xml->channel->item; 

for ($i = 0; $i < $count; $i++) { 
$description_original = $entry[$i]->description; 
$description_striphtml = strip_tags($description_original); 
$description = substr($description_striphtml, 0, $postlength); 

$link = $entry[$i]->link; 

$date_original = $entry[$i]->pubDate; 
$date = date('d-m-Y, H:i', strtotime($date_original)); 

$FB_feed .= $description."&hellip;<br>"; 
$FB_feed .= "<small><a href='".$link."'>".$date."</a></small><br><br>"; 
} 

return $FB_feed; 
} 
+0

Editar: Oh, lo siento, todavía funciona. –

1

Este documento detalla los pasos para obtener los tokens de acceso de Facebook y el uso de las fichas para ir a buscar alimenta FB.

Ejemplo: Un ejemplo vivo está disponible en

https://newtonjoshua.com

Introducción a Graph API: La API de gráficos es la principal forma de obtener los datos dentro y fuera de Plataforma de Facebook. Es una API de bajo nivel basada en HTTP que puede usar para consultar datos, publicar historias nuevas, administrar anuncios, cargar fotos y una variedad de otras tareas que una aplicación podría necesitar hacer.

aplicaciones de Facebook:

https://developers.facebook.com

Crear una aplicación de Facebook. Obtendrá una App_Id y App_Secret

Graph API Explorer:?

https://developers.facebook.com/tools/explorer/{{App_Id}}/method = GET & path = me% 2Ffeed & versión v2.8 =

te hará obtener un access_token que es de corta duración. Entonces este será nuestro short_lived_access_token.

Nota: al crear el token de acceso, seleccione todos los campos fb que necesite. Esto le dará permiso al token de acceso para recuperar esos campos.

acceso de emergencia Extensión:

https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id={{APP_ID}} & client_secret = {{App_Secret}} & fb_exchange_token = {{corta duración-señal_acceso}}

Obtendrás un access_token con una validez de 2 m onths.

Token de acceso Depurador:

https://developers.facebook.com/tools/debug/accesstoken?q={{}} señal_acceso & versión v2.8 =

puede comprobar comprobar los detalles de la access_token.

Facebook SDK de JavaScript: Incluir el siguiente JavaScript en el código HTML para cargar de forma asíncrona el SDK en su página

 (function (d, s, id) { 
      var js, fjs = d.getElementsByTagName(s)[0]; 
      if (d.getElementById(id)) { 
       return; 
      } 
      js = d.createElement(s); 
      js.id = id; 
      js.src = "//connect.facebook.net/en_US/sdk.js"; 
      fjs.parentNode.insertBefore(js, fjs); 
     }(document, 'script', 'facebook-jssdk')); 

Graph API: Vamos a hacer una llamada a la API para conseguir nuestra Identificación del FB , foto de perfil, foto de portada y feeds.

window.fbAsyncInit = function() { 
    FB.init({ 
     appId: '{{App_Id }}', 
     xfbml: true, 
     version: 'v2.7' 
    }); 
    FB.api(
     '/me', 
     'GET', { 
      fields: 'id,picture{url},cover,feed', 
      access_token: {{access_token}} 
     }, 
     function (response) { 
     if (response.error) { 
       console.error(response.error.message); 
      } 
      if (response.picture.data.url) { 
       profilePic = response.picture.data.url; 
      } 
      if (response.cover.source) { 
       coverPic = response.cover.source; 
      } 
      if (response.feed.data) { 
     feeds = response.feed.data; 
       feeds.forEach(function (feed) { 
      // view each feed content 
       }); 
      } 
      if (response.feed.paging.next) { 
       nextFeedPage = response.feed.paging.next; 
     // a request to nextFeedPage will give the next set of feeds 
      } 

     } 
    ); 
}; 

usar la gráfica API Explorer para diseñar su consulta que se deben introducir en los campos de los (por ejemplo: 'id, imagen {url}, cubierta, alimentación')

Ahora se puede recuperar su Datos de Facebook de Facebook Graph API usando access_token.

Consulte https://developers.facebook.com/docs/graph-api/overview/

Nota: Su access_token expirará en 2 meses. Crea un nuevo access_token después de eso.

Cuestiones relacionadas