#javascript #facebook #canvas #dialog
#javascript #Facebook #холст #диалоговое окно
Вопрос:
Я пытаюсь использовать всплывающее окно FB.ui oauth Facebook на странице Canvas Facebook. Я использую последнюю версию Javascript SDK.
На вкладке страницы отлично работает просто сделать: FB.ui({method: 'oauth'}, callback);
Это выдает мне всплывающее окно разрешить доступ, а затем вызывает мой обратный вызов с идеальным ответом. Перенаправление не требуется.
Однако, когда я пытаюсь проделать то же самое на Canvas, я получаю диалоговое окно FB с надписью «Произошла ошибка. Пожалуйста, повторите попытку позже «. Кто-нибудь заставил это работать или знает какие-либо обходные пути?
У меня был успех с top.location.href = "http://www.facebook.com/dialog/oauth?client_id=xxxamp;redirect_uri=xxx
подходом, но я бы предпочел не перенаправлять, если это возможно.
Ответ №1:
Оказывается, что FB.login (обратный вызов) отлично работает на странице canvas, а также позволяет избежать перенаправления.
Итак, ответом для меня было просто изменить FB.ui, чтобы вместо этого выполнить FB.login. Ответ, отправленный на обратный вызов, немного отличается от ответа FB.ui, но очень близок.
FB.login(function(response) {
if(response amp;amp; response.session) {
//do stuff with session
}
});
Комментарии:
1. Спасибо, у меня была такая же проблема (и до того, как я использовал
FB.ui
, у меня была своя пользовательская настройка всплывающего окна, которая была уродливой)
Ответ №2:
Что означает «это не работает»? Всплывающее окно может быть заблокировано, если оно не вызывается в ответ на пользовательское событие (например, щелчок мыши).
Комментарии:
1. Я обновил вопрос, чтобы лучше объяснить это. Я получаю диалоговое окно FB, в котором говорится: «Произошла ошибка. Пожалуйста, повторите попытку позже.»