2009-08-27 24 views
5

Digamos que soy dueño/control de una página de Facebook donde se publican los eventos. Me gustaría mostrar estos eventos en otro sitio web (en mi caso, un blog de WordPress, pero esa no es la parte importante) en una página de "Próximos eventos".Acceso externo a los eventos de Facebook

Lo que no estoy seguro es si la API de Facebook se puede usar "externamente" de esta manera? He descargado la biblioteca de PHP y tengo una aplicación de demostración ejecutándose que funciona desde Facebook (es decir, que emite FBML que facebook.com interpreta y muestra al usuario que ha iniciado sesión), pero en mi caso quiero un tercero (mi servidor web) para consultar Facebook de vez en cuando, en lugar de los visitantes del sitio que directamente solicitan datos (HTML/JSON/etc.) de Facebook.

¿Esto es posible con la API de Facebook? ¿Cómo se autenticará mi servidor web? ¿Qué información debo almacenar?

Nota: Estoy buscando información más en un nivel conceptual de "diagrama de secuencia", no solo solicitando el código. Esa parte puedo entenderme a mí mismo. ;) Desafortunadamente, Google y la wiki del desarrollador de FB no han sido del todo visibles. ¿Qué necesito saber para poder comenzar a codificar?

+0

Hola, me preguntaba si tuviste algo de suerte con esto, estoy tratando de implementar una versión simple similar a la tuya y tenía curiosidad sobre qué método terminaste usando. ¡Gracias! –

Respuesta

5

Ésta es una descripción básica de cómo lo he hecho para algunos de mis clientes que querían una funcionalidad similar:

  1. crear una aplicación bastante básico que solicita Extended permissions, específicamente "offline_access" y cualquier otra cosa necesita
  2. tienda del Session Key lo que resulta en su base de datos con el UID
  3. Crear un servicio web seguro y autenticado para su aplicación que le permite obtener la información que necesita para un UID que se proporciona, utilizando la sesión que usted tiene almacenado en su base de datos
  4. En el sitio web realice solicitudes al servicio web de su aplicación, asegurándose de almacenar en caché los resultados durante un cierto período de tiempo y solo haga una nueva solicitud a su servicio una vez que caduque (utilizo 5-10 minutos para la mayoría de los míos)

Así que, básicamente, su aplicación de Facebook actúa como un proxy entre el sitio web y el usuario, haciendo todo lo de la autenticación y la solicitud utilizando medios legítimos.

He usado un servicio web porque solo quería mantener una aplicación de Facebook para las necesidades de múltiples clientes. Funciona de la siguiente (en un diagrama de arte ASCII no muy impresionante):

Facebook User 1 \     /Client Website 1 
Facebook User 2 --- Facebook App --- Client Website 2 
Facebook User 3/     \ Client Website 3

Nota: Sólo he hecho esto para los usuarios, no páginas, por lo que su experiencia puede variar.

+0

es el servicio web que agrega mucho valor en esta configuración? – klochner

+1

He usado un servicio web en mi caso porque tengo varios clientes que usan la única aplicación de Facebook, y los mismos sitios web de clientes que hablan con la aplicación de Facebook para mostrar los datos en sus propios sitios. Si el sitio web y la aplicación eran uno en el mismo, entonces podría eliminar el bit del servicio web. Como dije en mi respuesta, esta es solo MI configuración. Brant podría hacer algo similar y eliminar los bits que no necesita. –

+0

gracias, solo curioso: pensé que podría ver algunas mejoras de velocidad al almacenar en caché localmente con el servicio web, pero parece una gran complejidad si no está obteniendo muchos datos. – klochner

3

AFAIK que no sea información del usuario, no puede obtener ningún otro dato de Facebook.

Pero puedes intentarlo de otra forma: por ejemplo, crea una aplicación que almacene eventos y otra información relevante en un servidor web y luego tu otro sitio web puede acceder fácilmente a esa información.

3

Puede hacer Events.get con la API de Facebook y luego proporcione la identificación de la página/perfil para la que desea obtener los eventos. Dependiendo de cómo esté configurada su página, es posible que deba autenticarse, simplemente use su cuenta de Facebook, ya que debe tener acceso a todos los eventos. Ah, y asegúrate de hacer un montón de almacenamiento en caché para no golpear Facebook en cada carga de página.

Cuestiones relacionadas