2009-06-08 3 views
12

Mi è stato chiesto di fare app Facebook. Prima di impegnarmi in qualcosa, voglio sapere con quale facilità un gioco può essere spostato su Facebook? (Sono completamente a mio agio nel creare giochi in JavaScript nel browser.)In che modo JavaScript è limitato quando si crea un'app Facebook?

Facebook filtra in qualche modo il codice JavaScript? Posso usare jQuery o altre librerie JS? Posso fare animazione modificando il DOM al volo? È meglio andare con un iFrame o usare FBML?

Ho fatto qualche ricerca sul sito di Facebook dev. Ma mi piacerebbe sapere da qualcuno che ha fatto ciò che è la curva di apprendimento.

risposta

9

JavaScript nel contesto di Facebook è diverso in quanto tutto verrà riscritto mentre passa attraverso Facebook. Per avere un'idea delle differenze (di cui ce ne sono molte), iniziare con FBJS Documentation. La guida getting started è un buon primer.

Il sito che diventerà la tua bibbia è wiki.developers.facebook.com, è canonico in termini di piattaforma FB. Inoltre, come tutti noi abbiamo imparato a conoscere e (amore? Odio?), La piattaforma di Facebook è un bersaglio mobile, quindi è utile tenere il passo con le cose tramite il gruppo Developers su Facebook. Mi piace anche il blog Inside Facebook.

maggior parte dei fornitori che consentono agli sviluppatori di incorporare JavaScript all'interno del loro dominio sviluppatori di forza da utilizzare iframe per sandbox loro codice. Facebook ha preso un approccio diverso a questo problema. JavaScript che ci viene dato viene analizzato e qualsiasi identificatore (funzione e nomi di variabili) viene anteposto allo l'ID dell'applicazione. Ad esempio, il blocco di codice seguente:

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

}

diventa:

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

Questo crea un ambito virtuale per ogni applicazione che viene eseguito all'interno di Facebook. Da lì vengono mostrate alcune funzionalità di attraverso una raccolta di oggetti JavaScript che consentono di modificare i contenuti su Facebook tramite . I nostri oggetti sono creati per imitare la funzionalità di JavaScript il più vicino possibile a , ma potrebbero essere necessari alcuni per abituarsi a persone che sono già abili con JavaScript.

Molti elementi che sono semplicemente elementi in JavaScript semplice devono essere eseguiti con chiamate di metodo speciali in FBJS. Ad esempio, quando si fa riferimento al valore di un campo modulo in JS, si utilizza .value, mentre in FBJS è necessario eseguire .getValue(). Sono queste differenze che impediscono semplicemente di tagliare e incollare JS da altrove su Facebook.

Questo è un primer di base. Questo dovrebbe iniziare. Meglio per te!

+0

C'è un modo per modificare la parte superiore e la sinistra di un div assoluto? Non riuscivo a trovarlo nei link. – Nosredna

+0

Non l'ho fatto, ma penso che useresti setStyle() per quello. obj.setStyle ({position: 'absolute', top: '10px', left: '10px'}); – artlung

1

Non troppo difficile, direi, dal momento che hai già la possibilità di programmare un gioco, dovrebbe essere bello per te programmare un'app per Facebook, oltre a migrare un gioco su Facebook.

per quanto ne so, con FBML Javascript sarà reso inutile (sì Javascript sarà filtrato)

quindi si dovrà utilizzare iFrame, che Javascript rimarrà funzionale (a patto che il javascript non tocca i tag fbml)

La documentazione di Facebook API è notoriamente negativa.

2

La soluzione semplice è avvolgere l'intero gioco in un iFrame. Lo stesso FB filtra molte chiamate javascript - in pratica, qualsiasi cosa coinvolga la finestra o gli oggetti del documento probabilmente non funzionerà.

Problemi correlati