martes, 6 de septiembre de 2011

Facebook y los cambios constantes

Hola querido lector,

hoy me voy a permitir el lujo de hablar sobre esta gran red social, y digo gran, por el número de usuarios y la comunidad, porque en otros aspectos, bajo mi experiencia como usuario y desarrollador, cada vez languidece más.
Por una parte, hace pocos días advertí un cambio a la hora de visualizar imágenes: en vez de mostrar un popup (cuadro emergente) con fondo negro, como venía siendo habitual, se muestra uno con fondo blanco.
¿Qué relevancia tiene? Pues mucha: el fondo blanco distrae, el enlace para cerrarlo no es suficientemente visible, las flechas de navegación tampoco, y no favorece tampoco a las imágenes.
Si no, está el ejemplo de flickr: cuando realizó el último cambio de interfaz, añadió la posibilidad de ver las fotos sobre un fondo negro, y vaya si realza la imagen y ayuda a aislarla del entorno, porque, en definitiva, se trata de eso: centrar la atención en la imagen, sin distracciones, y realzarla.
Y esto sin hablar con los cambios en la disposición de la barra de chat, cada vez menos accesible.
Pero lo más molesto, pero realmente molesto, son los cambios en el API, y la cantidad de agujeros en la misma, algo que, personalmente, me pone nervioso: no sólo tienes que atender los requisitos de un desarrollo, sino encima, pelearte con un API mutante, que cambia sin previo aviso y no tiene el suficiente soporte, como para migrar.
Está muy bien mejorar, de hecho, debería ser una exigencia, tanto personal como profesional: la constante mejora y la excelencia, pero no a costa de dejar atrás a usuarios y desarrolladores.
Y es que nada frustra más que pegarte horas y horas indagando cómo hacer algo a base de atar cabos sueltos, buscando ejemplos (no todos usamos PHP) y haciéndolos funcionar.

Un ejemplo práctico: se me dio la necesidad de publicar en el muro de una página de Facebook, desde una aplicación en Ruby On Rails.
¿Problemas? A punta pala, como se dice en mi pueblo.
El problema radica en la arquitectura del API, y me corrija alguien si me equivoco: todas las publicaciones se hacen usando como identificador el ID de una aplicación, y un valor denominado ACCESS TOKEN, el cuál está ligado al objeto donde quieres publicar (página, aplicación, etc...).
Visto así, parece fácil, ¿cierto? Pero aún queda otro problema: ¿cómo obtienes el valor ACCESS TOKEN?
Para una aplicación es trivial: en la configuración de la misma, te viene dado, pero si quieres usar el muro de una aplicación, la cosa cambia enormemente.
A grandes rasgos: hay ejemplos, y se agradecen que existan, en stack overflow, pero pueden funcionarte (ves la ventana de Facebook pidiendo autorización para dar permisos de una aplicación sobre tu página y luego obtienes el ACCESS TOKEN), o no (obtienes el ACCESS TOKEN).
¿Solución? Usar el explorador del Graph API, poner el ID de la página para ver la información de la misma (al lado de donde pone GET), pulsar sobre "Get Access Token", ¡et voilá!: tienes el cuadro de diálogo pidiendo los permisos.
Asignas los permisos (publish_stream, manage_pages, offline_access), obtienes el ACCESS TOKEN y ¡¡maravilla!! tu aplicación postea en el muro de la página.

En esta página tienes un ejemplo de uso: http://stackoverflow.com/questions/4883699/easy-way-of-posting-on-facebook-page-not-a-profile-but-a-fanpage

Y aquí termina esta entrada, no sin antes aclarar que no comento con acritud, pero sí con ánimo de animar y mejorar una plataforma puntera, y facilitar la vida a quienes desean colaborar y crear alrededor de.

¡¡Hasta la próxima!!