Как получить доступ к идентификатору пользователя Facebook из javascript в fb: iframe?

StackOverflow https://stackoverflow.com/questions/1061624

Вопрос

Я пишу приложение для Facebook, которое представляет собой простую настольную игру, которую я реализовал на JavaScript.Кажется, Facebook позволяет запускать приложения Javascript только внутри iframe, поэтому я загружаю страницу, используя <fb:iframe>.Я просто хочу иметь возможность сообщать javascript идентификатор пользователя, чтобы я мог сообщить пользователю, его очередь или нет, но я не могу найти документацию по доступу к данным Facebook из fb:iframe.Вероятно, мне не хватает некоторых базовых понятий, поскольку я не очень хорошо понимаю API Facebook.

Это было полезно?

Решение

За API Facebook очень сложно следовать, а документация очень плохая.Вы правы насчет Javascript...обычный Javascript работает только внутри iframe на Facebook, в противном случае вы ограничены подмножеством фильтрованного Javascript, называемым FBJS.Вы можете спокойно игнорировать что-либо о FBJS в документации и сосредоточиться на iframe.

Загрузка iframe

Первое, что я хотел бы упомянуть, это то, что <fb:iframe> тег на самом деле визуализируется с множеством вещей в src атрибут.Итак, если вы поместите такой тег на свою страницу в Facebook: <fb:iframe src="http://example.com/page?x=y">, то, чем он становится при загрузке в браузер пользователя, выглядит примерно так:

<iframe src="http://example.com/page?x=y&fb_sig_in_iframe=1&fb_sig_locale=en_US&fb_sig_in_new_facebook=1&fb_sig_time=1246340245.3338&fb_sig_added=1&fb_sig_profile_update_time=1242155811&fb_sig_expires=1246345200&fb_sig_user=000000001&fb_sig_session_key=2.d13uVGvWVL4hVAXELgxkZw__.3600.1246345200-000000001&fb_sig_ss=mZtFjaexyuyQdGnUz1zhYTA__&fb_sig_api_key=46899e6f07cef023b7fda4fg2e21bc58&fb_sig_app_id=22209322289&fb_sig=bbc165ebc699b12345678960fd043033">

Facebook добавляет массу вещей в src.Параметр, который сообщает вам идентификатор пользователя Facebook: fb_sig_user (здесь это 000000001).Я предполагаю, что ваше приложение настроено как «приложение FBML», поскольку вы, вероятно, не будете использовать <fb:iframe> тег в «приложении Iframe».Тем не менее, метод рендеринга в обоих случаях одинаков, и вы получаете массу дополнительных возможностей для вашего проекта. src документ в «приложении Iframe».

Однако на самом деле идентификатор пользователя Facebook передается только при первой загрузке iframe.Последующие операции внутри iframe не будут иметь доступа к этому идентификатору пользователя, если вы не передадите его явно.

Facebook Connect

Если вы хотите взаимодействовать с Facebook из iframe, именно здесь вам помогут библиотеки Javascript Facebook Connect.Лучшие инструкции по настройке Facebook Connect, вероятно, эта вики-страница, но все равно немного туманно.Facebook Connect можно использовать как для полностью внешних сайтов, так и для обычного контента внутри iframe.Вы попадаете в последнюю категорию, поэтому, если вы будете следовать инструкциям по этой ссылке и использовать первую строку кода на шаге 2 (для FeatureLoader), все будет в порядке.

После того как вы включили сценарий FeatureLoader.js и вызвали FB.init, вы, как правило, уже готовы к работе с FB Connect.Вы должны иметь возможность взаимодействовать с API с тех пор вон.А users.getLoggedInUser() метод предоставит вам текущий идентификатор пользователя внутри iframe через Javascript.

Надеюсь, это поможет.

Другие советы

Обратите внимание, что с марта 2011 года FB переходит на запросы POST для загрузки iframe.Он отправляет действие формы с помощью метода = «post» и target = «iframe_canvas», а также тип ввода = «скрытый» с «signed_request».

Вы можете использовать API Facebook, чтобы получить идентификатор пользователя, вызвав

Users.getLoggedInUser

Вы можете получить доступ к этому значению, а затем использовать echo(), чтобы добавить его в свой HTML как переменную JavaScript, что сделает его доступным для вашего кода Javascript.

Пытаться Env.user, у него есть идентификатор вошедшего в систему пользователя.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top