Каким образом JavaScript ограничен при создании приложения для Facebook? - PullRequest
12 голосов
/ 08 июня 2009

Меня попросили сделать приложения для Facebook. Прежде чем что-то предпринять, я хочу знать, как легко можно перенести игру на Facebook? (Мне совершенно удобно делать игры на JavaScript в браузере.)

Facebook каким-то образом фильтрует JavaScript? Могу ли я использовать jQuery или другие библиотеки JS? Могу ли я сделать анимацию, изменяя DOM на лету? Лучше всего пойти с iFrame или использовать FBML?

Я немного покопался в сайте разработчиков Facebook. Но я хотел бы услышать от кого-то, кто сделал это, на что похожа кривая обучения.

Ответы [ 3 ]

9 голосов
/ 08 июня 2009

JavaScript в контексте Facebook отличается, поскольку все это будет переписано по мере прохождения через Facebook. Чтобы понять различия (которых много), начните с FBJS Documentation . руководство по началу работы руководство является хорошим учебником.

Сайт, который станет вашей библией: wiki.developers.facebook.com , он канонический с точки зрения платформы FB. Кроме того, как мы все узнали и (любим? Ненавидим?) Платформа Facebook является движущейся целью, поэтому полезно быть в курсе событий через группу разработчиков на Facebook. Мне также нравится блог Внутри Facebook .

Большинство провайдеров, которые позволяют разработчикам встроить JavaScript в свой домен заставить разработчиков использовать iframes для песочница их код. Фейсбук занял другой подход к этой проблеме. JavaScript, который вы нам даете, получает разбирается, и любые идентификаторы (функция и имена переменных) начинаются с идентификатор вашего приложения. Например, следующий блок кода:

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

}

становится:

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

Это создает виртуальную область для каждого приложение, которое работает в Facebook. Оттуда мы выставляем определенные функциональность через коллекцию JavaScript объекты, которые позволяют вам изменить свой контент на Facebook. наш объекты сделаны, чтобы имитировать функциональность JavaScript так же тесно насколько это возможно, но это может занять некоторое привыкнуть к людям, которые уже владею JavaScript.

Многие элементы, которые являются просто элементами в простом JavaScript, должны выполняться с помощью специальных вызовов методов в FBJS. Например, когда вы ссылаетесь на значение поля формы в JS, вы используете .value, тогда как в FBJS вам нужно сделать .getValue(). Именно эти различия мешают просто вырезать и вставлять JS из других источников в Facebook.

Это базовый учебник. Это должно начать вас. С наилучшими пожеланиями!

2 голосов
/ 09 июня 2009

Простое решение - обернуть всю игру в iFrame. Сам FB отфильтровывает множество вызовов javascript - в основном, все, что связано с объектами окна или документа, вероятно, не будет работать.

1 голос
/ 08 июня 2009

Я бы сказал, что это не так сложно, поскольку у вас уже есть возможность программировать игру, для вас должно быть хорошо запрограммировать приложение для Facebook, а также перенести игру на Facebook.

Насколько я знаю, с FBML ваш javascript будет бесполезен (да, ваш javascript будет отфильтрован)

так что вам придется использовать iFrame, который ваш javascript будет оставаться функциональным (пока ваш javascript не касается тегов fbml)

Документация API Facebook очень плохая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...