2009-06-08 6 views
12

On m'a demandé de faire des applications Facebook. Avant de m'engager à quelque chose, je veux savoir à quel point un jeu peut facilement être déplacé sur Facebook? (Je suis complètement à l'aise de faire des jeux en JavaScript dans le navigateur.)En quoi JavaScript est-il restreint lorsque vous créez une application Facebook?

Est-ce que Facebook filtre le JavaScript d'une manière ou d'une autre? Puis-je utiliser jQuery ou d'autres bibliothèques JS? Puis-je faire de l'animation en modifiant le DOM à la volée? Est-il préférable d'utiliser un iFrame ou d'utiliser FBML?

J'ai fait quelques recherches sur le site de développement de Facebook. Mais j'aimerais entendre quelqu'un qui l'a fait à quoi ressemble la courbe d'apprentissage.

Répondre

9

JavaScript dans le contexte Facebook est différent dans la mesure où tout va être réécrit comme il passe par Facebook. Pour avoir une idée des différences (dont il existe plusieurs), commencez par le FBJS Documentation. Le guide getting started est un bon début.

Le site qui deviendra votre bible est wiki.developers.facebook.com, il est canonique en termes de la plate-forme FB. De plus, comme nous l'avons tous appris et que (l'amour? Haïr?), La plateforme Facebook est une cible mouvante, il est donc utile de suivre le cours via le groupe de développeurs sur Facebook. J'aime aussi le blog Inside Facebook.

La plupart des fournisseurs qui permettent aux développeurs de JavaScript intégrer dans leur domaine forcer les développeurs à utiliser IFRAMEs Sandbox leur code. Facebook a pris une approche différente de ce problème. JavaScript que vous nous donne obtient analysé, et tous les identifiants (fonction et les noms de variables) se préchargent avec votre ID d'application. Par exemple, le suivant bloc de code:

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

}

devient:

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

Cela crée un champ virtuel pour chaque application qui fonctionne dans Facebook. De là, nous exposons certaines fonctionnalités à travers une collection de objets JavaScript qui vous permettent de modifier votre contenu sur Facebook. Nos objets sont faits pour imiter la fonctionnalité de JavaScript autant que possible , mais cela peut prendre quelques s'habituer pour les gens qui sont déjà avec JavaScript.

De nombreux éléments qui ne sont que des éléments simples de JavaScript doivent être accomplis avec des appels de méthode spéciaux dans FBJS. Par exemple, lorsque vous faites référence à la valeur d'un champ de formulaire dans JS, vous utilisez .value, alors que dans FBJS, vous devez faire .getValue(). Ce sont ces différences qui empêchent simplement de couper et de coller JS d'ailleurs sur Facebook.

C'est une amorce de base. Cela devrait vous aider à démarrer. Meilleur pour vous!

+0

Existe-t-il un moyen de changer le haut et le gauche d'un div absolu? Je ne pouvais pas trouver cela dans les liens. – Nosredna

+0

Je ne l'ai pas fait, mais je pense que vous utiliseriez setStyle() pour cela. obj.setStyle ({position: 'absolute', en haut: '10px', left: '10px'}); – artlung

1

Pas trop dur, je dirais, puisque vous avez déjà la possibilité de programmer un jeu, ça devrait vous convenir de programmer une application facebook, ainsi que de migrer un jeu sur facebook.

en autant que je sache, avec FBML votre javascript sera rendu inutile (oui votre javascript sera filtré)

de sorte que vous devrez utiliser iFrame, que votre javascript restera fonctionnel (aussi longtemps que votre javascript ne touche pas les balises fbml)

La documentation de l'API de Facebook est notoirement mauvaise.

2

La solution simple est d'envelopper votre jeu entier dans un iFrame. FB lui-même filtre beaucoup d'appels javascript - en fait, tout ce qui concerne la fenêtre ou les objets de document ne fonctionnera probablement pas.

Questions connexes