Funcionamiento de la Graph API de Facebook

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]

PermisosDescripción
read_friendlistsAcceso a la lista de amigos del usuario.
read_insightsAcceso a los «Insights» de páginas, aplicaciones y dominios del usuario.
read_mailboxAcceso a los mensajes del usuario.
read_requestsLee las solicitudes de amistad.
read_streamPermite lectura del time line del usuario.
xmpp_loginPermite a la aplicación usar el chat de Facebook.
ads_managementAdministración de anuncios en Facebook.
create_eventHabilita la creación y edición de eventos.
manage_friendlistsEdición y creación de listas de amigos.
manage_notificationsLeer notificaciones y poder marcarlas como leidas.
user_online_presenceAcceso a la cuenta del usuario cuando esté online/offline.
friends_online_presenceAcceso a los amigos del usuario
publish_streamPermite la publicación de estados, comentarios…
rsvp_eventPermite 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.

  8 Comentarios

  1. yail   •  

    Hola muy interesante el articulo. tengo una idea en mente pero quisiera saber si hay alguna forma de utilizar la api para buscar grupos de acuerdo a palabras clave y ver las publicaciones de esos grupos. si pudieran responder les agradeceria mucho saludos!

  2. Javier Abad O   •  

    Como estas Brian, un cordial saludo por lo que lei trabajas Freelance, te comento que necesito una cuestion super urgente… A ver si nos ponemos en contacto a mi mail [email protected] mi Skype es abad_javier para reunirmos lo mas pronto posible es algo super sencillo que no te toma mucho tiempo y conversariamos el tema de remuneracion via dhl o western union… Saludos

  3. Paul   •  

    hola, podrias decirme si con la api de facebook se puede responder a un comentario ??

  4. Hans   •  

    porque no publicar un ejemplo de una APP que publique en el muro y que a la vez pida permiso para publicar.
    Saludos

  5. Davabuu   •  

    Muy bien, pero no tendras algun ejemplo de el script para publicar en el muro con php sdk y la Grap Api?

  6. Brian Urban   •     Autor

    Les recomiendo leer un poco en fbdevwiki.com/wiki/Graph_API hay ejemplos para lo que necesitan.

  7. Junior de Leon   •  

    Hola, actualmente estoy desarrollando una web que permita que un usuario se auntentique con su cuenta de Facebook. Debo usar Javascript y obtener su nombre, foto de perfil y la informacion del perfil (acerca del usuario, ciudad de nacimiento, etc). Podrias explicarme como puedo realizar esto?

  8. Santiago   •  

    Brian son muy buenos tus post, pero me gustaria saber como pedir permisos a facebook e interactuar con la Graph api si tienes algun tutorial a la mano o puedes publicar mas te lo agradeceria.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *