¿De qué manera se restringe JavaScript al crear una aplicación de Facebook?

votos
12

Me han pedido que haga aplicaciones de Facebook. Antes de comprometerme con algo, ¿quiero saber con qué facilidad se puede mover un juego a Facebook? (Me siento completamente cómodo creando juegos en JavaScript en el navegador).

¿Facebook filtra el JavaScript de alguna manera? ¿Puedo usar jQuery u otras bibliotecas JS? ¿Puedo hacer animación alterando el DOM sobre la marcha? ¿Es mejor ir con un iFrame o usar FBML?

He estado hurgando en el sitio de desarrollo de Facebook. Pero me gustaría saber de alguien que lo hizo cómo es la curva de aprendizaje.

Publicado el 08/06/2009 a las 17:44
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
1

No es demasiado difícil, ya que ya tienes la capacidad de programar un juego, debería estar bien programar una aplicación de Facebook, así como migrar un juego a Facebook.

por lo que sé, con FBML su javascript se volverá inútil (sí, su javascript será filtrado)

por lo que tendrá que usar iFrame, que su javascript seguirá siendo funcional (siempre que su javascript no toque las etiquetas fbml)

La documentación de la API de Facebook es notoriamente mala.

Respondida el 08/06/2009 a las 17:49
fuente por usuario

votos
9

JavaScript en el contexto de Facebook es diferente en la medida en que se reescribirá a medida que pase por Facebook. Para tener una idea de las diferencias (de las cuales hay muchas), comience con la Documentación de FBJS . La guía de inicio es una buena guía.

El sitio que se convertirá en su biblia es wiki.developers.facebook.com , es canónico en términos de la plataforma FB. Además, como todos hemos llegado a saber y (¿amar, odiar?) La plataforma de Facebook es un objetivo en movimiento, por lo que es útil mantenerse al día con las cosas a través del Grupo de Desarrolladores en Facebook. También me gusta el blog Inside Facebook .

La mayoría de los proveedores que permiten a los desarrolladores insertar JavaScript dentro de su dominio obligan a los desarrolladores a usar iframes para proteger su código. Facebook ha tomado un enfoque diferente a este problema. El JavaScript que nos proporciona se analiza y todos los identificadores (nombres de funciones y variables) se anteponen a su ID de aplicación. Por ejemplo, el siguiente bloque de código:

function foo(bar) { var obj = {property: bar}; return obj.property;

}

se convierte en:

function a12345_foo(a12345_bar) { var a12345_obj = {property: a12345_bar}; return a12345_obj.property; }

Esto crea un alcance virtual para cada aplicación que se ejecuta dentro de Facebook. A partir de ahí, exponemos ciertas funciones a través de una colección de objetos JavaScript que le permiten modificar su contenido en Facebook. Nuestros objetos están hechos para imitar la funcionalidad de JavaScript lo más fielmente posible, pero puede llevar algo de tiempo acostumbrarse a personas que ya son expertos en JavaScript.

Muchos elementos que son simplemente elementos en JavaScript simple se deben lograr con llamadas a métodos especiales en FBJS. Por ejemplo, cuando se refiere al valor de un campo de formulario en JS que utiliza .value, mientras que en FBJS necesita hacerlo .getValue(). Son estas diferencias las que evitan simplemente cortar y pegar JS de otra parte en Facebook.

Esa es una cartilla básica. Eso debería hacerte comenzar. ¡Mejor para usted!

Respondida el 08/06/2009 a las 18:26
fuente por usuario

votos
2

La solución simple es envolver todo tu juego dentro de un iFrame. El propio FB filtra muchas llamadas javascript, básicamente, cualquier cosa que involucre los objetos de ventana o documento probablemente no funcionará.

Respondida el 09/06/2009 a las 03:30
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more