De ahora en adelante los tutoriales sobre el desarrollo de aplicaciones para Facebook estarán orientado para la Graph API, ya que gran parte de los anteriores artículos están basados en la Old REST API que aunque actualmente funciona no es recomendado hacer uso de esta.
¿Cómo funciona la Graph API?
Antes que nada hay que entender el funcionamiento de esta «nueva» API, la cual nació con la idea de simplificar el desarrollo de las aplicaciones. Básicamente nos permite obtener datos de distintos objetos como por ejemplo el objeto User o el objeto Event y las conexiones entre ellos. Esto se podría representar como una base de datos, por ejemplo si «buscáramos» el objeto user sería como hacer un select * from users y recibiríamos un array con los datos.
¿Cómo funcionan los Objetos?
[pullquote1 align=»right» variation=»green»]Los objetos disponibles actualmente son: Users, Pages, Events, Groups, Applications, Status messages, Photos, Photo albums, Profile pictures, Videos, Notes y Checkins.[/pullquote1]
Cada objeto tiene un identificador Único (ID) con el que se puede acceder a su información que sería algo como https://graph.facebook.com/ID. Por ejemplo si probáramos con mi ID https://graph.facebook.com/brianurban nos debería devolver un array con nombre, ID, genero y otros datos que son públicos, pero en caso de querer acceder a datos privados como por ejemplo el email del usuario se deben pedir permisos, explicaré eso más adelante.
Conexiones
Cada objeto está relacionado con otros, a dichas relaciones se les llama Conexiones, como por ejemplo la conexión friends o la conexión posts a los cuales se puede acceder desde http://graph.facebook.com/ID/Conexion. Las conexiones disponibles actualmente son: Friends, News feed, Profile feed (Wall), Likes, Movies, Music, Books, Notes, Photo Tags, Photo Albums, Video Tags, Video Uploads, Events, Groups, Checkins.
Como mencioné anteriormente la forma acceder a la API es enviando peticiones a http://graph.facebook.com, pero para no complicarnos la vida Facebook provee varias librerías que facilitan el trabajo. La Graph API también nos permite hacer consultas a varios objetos a la vez (multiquerys) de la forma http://graph.facebook.com?ids=ID,ID o hacer la consulta de datos específicos http://graph.facebook.com/1230140028?fields=email,name. Incluso podemos hacer un limit, imagínense lo que se podría demorar consultar todos los amigos de un usuario, suponiendo que ese usuario tiene 4.000 amigos, para ello solo haríamos un limit a la conexión friends http://graph.facebook.com/ID/friends?limit=15.
Permisos extendidos
Para obtener por ejemplo el email del usuario como en el ejemplo anterior se necesitan pedir permisos extendidos, algunas conexiones simplemente requieren un token, veámoslo en detalle:
[default_table]
Permisos | Descripción |
---|
read_friendlists | Acceso a la lista de amigos del usuario. |
read_insights | Acceso a los «Insights» de páginas, aplicaciones y dominios del usuario. |
read_mailbox | Acceso a los mensajes del usuario. |
read_requests | Lee las solicitudes de amistad. |
read_stream | Permite lectura del time line del usuario. |
xmpp_login | Permite a la aplicación usar el chat de Facebook. |
ads_management | Administración de anuncios en Facebook. |
create_event | Habilita la creación y edición de eventos. |
manage_friendlists | Edición y creación de listas de amigos. |
manage_notifications | Leer notificaciones y poder marcarlas como leidas. |
user_online_presence | Acceso a la cuenta del usuario cuando esté online/offline. |
friends_online_presence | Acceso a los amigos del usuario |
publish_stream | Permite la publicación de estados, comentarios… |
rsvp_event | Permite confirmar asistencia a eventos. |
[/default_table]
En el articulo conociendo el PHP SDK de Facebook hablo de como usar los permisos extendidos. Como ven el funcionamiento de esta API es bastante sencilla, teniendo en mente su funcionamiento se pueden hacer cosas fácilmente como por ejemplo publicar en el muro, crear albums… próximamente iremos viendo como hacer este tipo de cosas.