Sugerencias

Problemas al renderizar fbml en una aplicación de facebook con iframes

Publicado el 10 Aug 2010

Hablo de
facebookfbml

Ahora es posible usar marcado fbml dentro de una aplicación de facebook basada en iframes. Pero no es posible usar toda la colección de tags disponibles, sino una lista reducida conocida como Xfbml.

Para hacer uso en nuestra aplicación de estos tags, debemos inicializar la librería de javascript de facebook de la siguiente manera:

 <script type=text/javascript>  
    FB_RequireFeatures(["xfbml"], function(){  
        FB.facebook.init("YOUR APIKEY", "xd_receiver.htm");  
 });  
 </script>

y en cualquiera de nuestras vistas podriamos usar código fbml de la siguiente manera directamente:

Hola soy <fb:name uid="<%= facebook_session.user.id %>" useyou=false> </fb:name>
Y mi avatar es:  <fb:profile-pic uid="<%= facebook_session.user.id %>" > </fb:profice-pic>
    

    

y en principio con esto valdría... pero como muchas veces pasa con facebook, esto no funciona. Para conseguir hacer funcionar el marcado, es necesario hacer un pequeño truco: en la configuración de nuestra aplicación a través de la aplicación "Developer" necesitamos que, aunque nuestra aplicación esté dentro de facebook y no sea una aplicación "connect" (es decir, que no es una aplicación que usemos para iniciar sesión a través de facebook en una web externa), configurar el parámetro Connect Url de la sección Connect con la misma url que estamos usando en Canvas Callback URL.

canvas_callback

connect_url_

Un poco extraño todo esto, la única explicación un poco razonable que se puede encontrar a éste pequeño requisito, es que todo el desarrollo del Xfbml se implementó de la mano de la api para facebook connect, para poder pintar los "Social Widget" de facebook (que son marcado xfbml) en cualquier web fuera de facebook y esa feature es la que estamos usando aqui para poder pintar fbml dentro de nuestro iframe, pues al fin y al cabo, nuestro querido iframe es una web externa a facebook.

Deja tu comentario: