12 Stimmen

Inwiefern ist JavaScript bei der Entwicklung einer Facebook-App eingeschränkt?

Ich bin gebeten worden, Facebook-Apps zu machen. Bevor ich mich auf etwas festlege, möchte ich wissen, wie einfach ein Spiel auf Facebook übertragen werden kann? (Ich bin mit der Erstellung von Spielen in JavaScript im Browser völlig vertraut).

Filtert Facebook das JavaScript auf irgendeine Weise? Kann ich jQuery oder andere JS-Bibliotheken verwenden? Kann ich Animationen erstellen, indem ich das DOM während der Ausführung ändere? Ist es am besten, mit einem iFrame zu arbeiten oder FBML zu verwenden?

Ich habe mich ein wenig auf der Facebook-Entwicklungsseite umgesehen. Aber ich würde gerne von jemandem hören, der es getan hat, wie die Lernkurve ist wie.

9voto

artlung Punkte 31996

JavaScript im Facebook-Kontext ist insofern anders, als dass alles umgeschrieben wird, während es Facebook durchläuft. Um ein Gefühl für die Unterschiede (von denen es viele gibt) zu bekommen, beginnen Sie mit der FBJS-Dokumentation . Die erste Schritte Leitfaden ist eine gute Grundlage.

Die Website, die zu Ihrer Bibel wird, ist wiki.entwickler.facebook.com ist es kanonisch in Bezug auf die FB-Plattform. Außerdem ist die Facebook-Plattform, wie wir alle wissen und (lieben? hassen?), ein bewegliches Ziel, so dass es nützlich ist, über die Developers Group auf Facebook auf dem Laufenden zu bleiben. Ich mag auch den Blog Innerhalb von Facebook .

Die meisten Anbieter, die Entwicklern die Möglichkeit geben JavaScript in ihre Domain einzubetten zwingen die Entwickler, iframes zu verwenden, um ihren Code zu verschlüsseln. Facebook hat einen anderen Ansatz für dieses Problem gewählt. JavaScript, das Sie uns zur Verfügung stellen, wird geparst, und alle Bezeichner (Funktions- und und Variablennamen) werden vorangestellt mit Ihre Anwendungs-ID vorangestellt. Zum Beispiel kann der folgende Code-Block:

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

}

wird:

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

Dadurch wird ein virtueller Bereich für jede Anwendung, die innerhalb von Facebook läuft. Von dort aus legen wir bestimmte Funktionalität durch eine Sammlung von JavaScript-Objekte, mit denen du Ihre Inhalte auf Facebook zu ändern. Unsere Objekte imitieren die Funktionalität von JavaScript so genau wie möglich wie möglich nachzubilden, aber es kann etwas gewöhnungsbedürftig für Leute, die bereits mit JavaScript vertraut sind.

Viele Elemente, die in normalem JavaScript einfach nur Elemente sind, müssen in FBJS mit speziellen Methodenaufrufen erreicht werden. Wenn man sich zum Beispiel auf den Wert eines Formularfeldes in JS bezieht, verwendet man .value , während Sie in FBJS Folgendes tun müssen .getValue() . Es sind diese Unterschiede, die ein einfaches Ausschneiden und Einfügen von JS aus anderen Quellen in Facebook verhindern.

Das ist eine Grundvoraussetzung. Damit sollten Sie anfangen können. Alles Gute für Sie!

0 Stimmen

Gibt es eine Möglichkeit, den oberen und linken Rand eines absoluten Divs zu ändern? Ich konnte das in den Links nicht finden.

0 Stimmen

Ich habe das nicht getan, aber ich denke, Sie würden setStyle() dafür verwenden. obj.setStyle({position: 'absolute', top: '10px', left: '10px'});

2voto

Mike Heinz Punkte 1751

Die einfache Lösung besteht darin, das gesamte Spiel in einen iFrame zu packen. FB selbst filtert eine Menge Javascript-Aufrufe - im Grunde alles, was mit dem Fenster oder Dokument-Objekte wahrscheinlich nicht funktionieren.

1voto

Unreality Punkte 3931

Ich würde sagen, dass es nicht allzu schwer ist, da du bereits die Fähigkeit hast, ein Spiel zu programmieren, sollte es für dich kein Problem sein, eine Facebook-App zu programmieren und ein Spiel auf Facebook zu migrieren.

Soweit ich weiß, wird Ihr Javascript mit FBML unbrauchbar gemacht (ja, Ihr Javascript wird gefiltert)

Sie müssen also iFrame verwenden, wobei Ihr Javascript funktionsfähig bleibt (solange Ihr Javascript die fbml-Tags nicht berührt)

Die Dokumentation der Facebook-Api ist notorisch schlecht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X