Facebook conforma un ecosistema propio. Tiene sus propios usuarios que alimentan de contenido la red y, compartiendo gustos e inquietudes van conformando un grafo social cuyas relaciones sirven para segmentar y recomendar. Los plugins sociales esparcidos por todo Internet (como el botón "me gusta") contribuyen al crecimiento de dicho grafo.
Dentro de este ecosistema se encuentran las aplicaciones. Facebook pone a disposición de los desarrolladores un espacio reservado para mostrar sus creaciones. Este espacio se conoce como iFrame y, por así decirlo, un iFrame permite incrustar una página web dentro de otra, siendo la página principal el padre (en ingles "parent", que hace referencia a padre o madre) y el iFrame, el hijo. Un hijo debe seguir las normas de sus padres y no tiene libertad para hacer todo lo que le venga en gana, ya que depende de ellos. Así, Facebook aporta este espacio para que cualquiera lo utilice, pero con una serie de restricciones.
Las apps aquí no son como las nativas en los dispositivos móviles (iOS, Android,...), son aplicaciones web. Es decir, desarrollos basados en estándares reconocibles por los navegadores web. Es casi obligatorio el uso de HTML y CSS, y muy común lenguajes como JScript, PHP, Ruby, Python... Facebook no pone restricciones a la hora de decantarse por una tecnología u otra (sobre todo la que concierne al lado del servidor) pero solo aporta herramientas oficiales para alguna de ellas. Así que, si tienes experiencia en la creación de webs (incluso estáticas) podrías incluir tus desarrollos dentro de tu fanpage.
El caso es que para sacar partido del punto fuerte, la capa social, la plataforma también aporta instrumentos para jugar con el grafo que comentaba un poco más arriba. Si tenemos los permisos adecuados por parte de los usuarios (Facebook protege la privacidad de sus miembros, es decisión de los mismos conceder determinados privilegios a las aplicaciones) podemos utilizar su información y la de sus contactos para crear experiencias únicas. Toda esta información se extrae a través de su propia API (Application Public Interface), que es un servicio que muchas plataformas ofrecen para automatizar la recogida de información o realizar determinadas operaciones, y así poder crear más servicios y herramientas a partir de ahí. En concreto, este API es de tipo RESTful (Representational State Transfer) y la información se devuelve en un formato llamado JSON (Javascript Notation Object). El uso de este API en concreto es lo que necesitas aprender.
Después de esta introducción, pasamos a enumerar algunos de los recursos que deberías tener en cuenta en el momento en que te lances a la creación de tus propias apps:
- Facebook Developers: El centro neurálgico del desarrollo de aplicaciones en Facebook. Además de contener toda la documentación oficial, desde aquí se accede al panel de control (dashboard) de los perfiles de aplicación que hayas creado. La documentación no es precisamente una maravilla, de hecho, es bastante escueta, un poco desordenada y con ejemplos contados, pero siempre será tu primer sitio de consulta. Aquí encontrarás información sobre procedimientos, funciones, técnicas, código, buenas prácticas, uso de plugins, dialogs... en definitiva todo lo que, "en teoría", necesitas saber.
- Facebook Developers Blog: Un blog actualizado con las últimas novedades y cambios en la plataforma. Es muy importante estar al día en los cambios que van haciendo, ya que, alguno de ellos puede influir directamente en tu aplicación. Cuando van a dar alguna característica como desfasada (como el famoso FBML) suelen establecer un deadline prudencial para que podamos adaptar nuestro código. Nos informan también de los bugs que se han ido encontrando y subsanando (que son muchos) y nos cuentan nuevas características que están por llegar. A este framework informativo se le conoce como Operation Developer Love. Normalmente mediante este blog nos enteramos de muchas cosas sobre Facebook un poco antes que el resto de usuarios.
- Facebook Developer Policies: Es fundamental leerse la política de Facebook respecto al desarrollo de aplicaciones. Lo que puede hacerse y lo que no. Es posible que si incumplimos alguna de sus cláusulas Facebook nos la cierre, sobretodo si alguno de nuestros usuarios la ha denunciado.
- Facebook Developer Tools: Aquí tienes herramientas básicas para el desarrollo. Como el SDK de PHP en Github, una librería creada para facilitar la comunicación con el API a través de este conocido lenguaje de script. El Graph API Explorer, una herramienta muy sencilla para explorar, en texto plano, el Open Graph y jugar con los permisos. Facebook Read Eval Log Loop (fbrell), un entorno interactivo para explorar el SDK Javascript creado por Facebook. Y muchas más cosas que deberías, al menos, probar.
- Facebook en Stack Overflow: Si eres programador ya la conoces. Stack Overflow es una fuente inagotable de conocimiento. Cuenta con una comunidad enorme en la que un usuario lanza una pregunta sobre el desarrollo de aplicaciones y la comunidad responde ayudando con sus soluciones. Es sorprendente encontrarse siempre a alguien que ha tenido el mismo problema que tú, hasta el escenario más extraño y disparatado es probable que le haya ocurrido a alguien antes y que lo haya preguntado en esta web. Para mí, donde termina la documentación oficial de Facebook empieza Stack Overflow. Una mina.
- Tutoriales y manuales: Una forma amigable de empezar con esto es que alguien te lo explique. Existen numerosos tutoriales para principiantes, vídeos, manuales de referencia, soluciones a problemas determinados, hacks, prácticas comunes, etc. Muchas cosas son más fáciles de asimilar así que leyéndolas en la documentación oficial. Eso sí, mucho ojo a que toda la info que leas esté actualizada. Como decía antes, los cambios en la plataforma son constantes y si sigues un tutorial que ha quedado anticuado te pueden pasar dos cosas: o que la app no funcione o que la app funcione pero deje de hacerlo pronto, ya que quizás has utilizado alguna característica cuyo deadline está ya concretado.
Imágenes | GeekoSystem Matuk