У меня есть Facebook app, который построен как iFrame. Я использую клиент JavaScript API загружается с помощью:Facebook API: FB.Connect.requireSession issues
В моем коде инициализации, я использую метод requireLogin
для того, чтобы пользователь разрешил приложение. Я нашел это необходимым, чтобы иметь возможность собирать имя пользователя, аватар и т. Д. Для табло. Вот представитель фрагмент кода:
FB_RequireFeatures(["Connect","Api"], function() {
FB.Facebook.init("...API_KEY_HERE...", "xd_receiver.htm");
var api = FB.Facebook.apiClient;
api.requireLogin(function() {
api.users_getInfo(
FB.Connect.get_loggedInUser(),
["name", "pic_square", "profile_url"],
function(users, ex) {
/* use the data here */
});
});
});
Это приводит к тому, IFRAME перенаправлять в результате чего экран авторизации Facebook, чтобы загрузить в плавающем фрейме моего приложения. Это выглядит неуклюжим и несколько запутанным для пользователя, например. есть два бара Facebook и т. д.
Вопрос 1: Есть ли что-нибудь, что я могу сделать, чтобы очистить это, сохраняя при этом как iFrame, и все еще используя JavaScript API?
Согласно FB API documentation:
FB.ApiClient.requireLogin
Этот метод не рекомендуется - использовать FB.Connect.requireSession вместо этого.
Мой опыт, хотя при замене api.requireLogin
с помощью FB.Connect.requireSession
он никогда не вызывается. Я предпочел бы рекомендованный способ сделать это, но я боролся и не смог найти способ заставить его работать. Я попытался добавить различные аргументы для других двух параметров, а также, казалось бы, никакого эффекта. Я ожидаю, что этот метод будет загружаться в диалоговом окне внутри моего приложения iFrame с аналогичным сообщением авторизации.
Вопрос 2: Что мне недостает с получением FB.Connect.requireSession
, чтобы запросить у пользователя разрешение?
Наконец, в конце игры приложение запрашивает у пользователя возможность опубликовать свой счет в своем потоке через FB.Connect.streamPublish
. Что приводит меня к ...
Вопрос 3: Я загружаю правильные функции? Нужны ли мне как «Api», так и «Connect»? Я не хватает других?
** ПРИМЕЧАНИЕ: ** присужденный ответ был тем, который подтолкнул меня в правильном направлении, но мой собственный ответ ниже содержит фрагмент кода, который является решением. – mckamey