Подтвердить что ты не робот

Каким образом JavaScript ограничивается при создании приложения для Facebook?

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

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

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

4b9b3361

Ответ 1

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

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

Большинство поставщиков, которые разрешают разработчикам встраивать JavaScript в свой домен заставить разработчиков использовать iframes для песочница их код. Facebook сделал другой подход к этой проблеме. 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

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

Ответ 3

Не слишком сложно, я бы сказал, так как у вас уже есть возможность запрограммировать игру, вам должно быть удобно программировать приложение facebook, а также переносить игру в facebook.

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

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

Документация api в Facebook, как известно, плохо.