Saturday, October 23, 2010

Integración Facebook - ASP.NET con Graph API (I)

Desde hace tiempo las redes sociales van tomando más importancia en nuestro día a día, ya sea en el trabajo o en nuestra vida privada. Tanto Facebook como Tuenti Twitter ofrecen unas estupendas APIs, abiertas a que programadores de todo el mundo incluyan componentes sociales en sus portales, en aplicaciones de escritorio o incluso en aplicaciones para móviles. En este post voy a hablar sobre cómo integrar un muro de un grupo de Facebook y cómo autenticarse y postear desde una página ASP.NET al mismo muro utilizando la nueva Graph API de Facebook.

Antes de nada, recomiendo pasarse por la documentación de la Graph API y por la de OAuth. Como veréis en los enlaces, absolutamente toda la interacción con Facebook (tanto gets como posts) se hace mediante llamadas del estilo https://graph.facebook.com/ID. Cualquier tipo de datos (perfiles de usuario, grupos, imágenes, posts del muro, etc), se obtiene en el objeto JSON que devuelve este tipo de llamadas HTTP. Probad por ejemplo mi perfil: https://graph.facebook.com/guisuraga -ese soy yo en FB! :)-. Otro enlace realmente interesante para entender lo que hacen este tipo de llamadas es el de este ingeniero de Google.

Es necesario que también os registréis con un perfil de Developer en Facebook. Desde esa página debéis añadir una nueva aplicación y configurarla. Guardad los datos del Application ID, Application Secret y API Key porque serán necesarios para hacer las llamadas desde vuestra aplicación. Esta aplicación en Facebook es la encargada de rutear las solicitudes a la Graph API de Facebook, y devolver los datos solicitados por vuestra aplicación.


Ahora que tenemos una idea del potencial de esta API y teniendo en cuenta nuestro objetivo de incluir este componente en una aplicación ASP.NET, lo más rápido (y fácil) es encontrar una buena API en .NET que nos ayude a recuperar los datos y a transformar ese objeto JSON en algo que podamos manejar más fácilmente. Creedme, he probado varias APIs, y ninguna es tan simple y funciona tan bien (con alguna pequeña modificación :P) como la que los propios chicos de Facebook sacaron hace poco para C#. La podéis descargar desde aquí.

Una vez compilada y añadida a nuestro proyecto, la referencia Facebook actúa de intermediario entre nuestra aplicación y Facebook. En cada nueva instancia de un objeto FacebookAPI es necesario pasar por parámetro un AccessToken proporcionado por Facebook al hacer una llamada a la URL https://graph.facebook.com/oauth/authorize. Existen dos tipos de tokens: uno para recuperar datos públicos (datos del muro, datos públicos de perfiles), y otro para recuperar datos de una sesión autenticada (comentarios de posts en el muro, información adicional de perfiles). Para el primero de ellos, es suficiente con proporcionar los datos de nuestra aplicación residente en Facebook. El AccessToken para la parte privada lo intentaré explicar más adelante (cuando nos metamos con OAuth).

En la próxima parte del post me meteré con el código que hace esto.

3 comments:

  1. Interesante... esto es por trabajo o por placer?

    ReplyDelete
  2. Ambas :-) He tenido la suerte de que me tocara. A ver si posteo la última parte de autenticación en el caralibro.

    ReplyDelete