2009-06-08 12 views
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? (Estoy completamente cómodo haciendo juegos en JavaScript en el navegador.)¿De qué manera se restringe JavaScript al crear una aplicación de Facebook?

¿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.

Respuesta

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 FBJS Documentation. La guía getting started 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 conocer 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 a integrar JavaScript dentro de sus dominios desarrolladores de fuerza de usar iframes para caja de arena de su código. Facebook ha tomado un enfoque diferente a este problema. JavaScript que nos da obtiene analizado, y cualquier identificador (función y nombres de variables) se antepone con 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 ámbito virtual para cada aplicación que se ejecuta dentro Facebook. A partir de allí exponemos ciertas funciones de a través de una colección de objetos de JavaScript que le permiten modificar su contenido en Facebook. Nuestros objetos están hechos para imitar la funcionalidad de JavaScript de la forma más cercana posible a , pero puede llevar un poco de acostumbrarse a las personas que son ya adeptas a JavaScript.

Muchos elementos que son simplemente elementos en JavaScript plano se deben realizar con llamadas a métodos especiales en FBJS. Por ejemplo, cuando se refiere al valor de un campo de formulario en JS, usa .value, mientras que en FBJS necesita hacer .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!

+0

¿Hay alguna manera de cambiar la parte superior e izquierda de un div absoluto? No pude encontrar eso en los enlaces. – Nosredna

+0

No he hecho eso, pero creo que usaría setStyle() para eso. obj.setStyle ({position: 'absolute', top: '10px', left: '10px'}); – artlung

1

No es demasiado difícil Yo diría que, dado que ya tiene 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 yo sé, con FBML javascript será inútil (sí javascript será filtrada)

por lo que tendrá que utilizar iFrame, que su Javascript seguirá siendo funcional (siempre y cuando su javascript no toca las etiquetas fbml)

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

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á.

Cuestiones relacionadas