2013-04-14 1 views
1

У меня есть приложение для холста в Facebook, которое вызывает FB.getAuthResponse() первым и, при необходимости, FB.login(). Документация JS SDK четко заявляет, что FB.login() открывает всплывающее окно входа в систему, что является правильным, когда я сразу попал в URL холста. Однако, когда я делаю то же самое на странице холста как анонимный пользователь, появляется лайтбокс «Не вошел в систему» ​​и перенаправляется на страницу входа.Логин popup vs lightbox in Facebook canvas app

Есть ли способ унифицировать это поведение (желательно всегда использовать всплывающее окно)?

ответ

1

Оказывается, можно указать «формат» окна входа в систему при использовании JS SDK - FB.login() accepts the display parameter, который определяет режим отображения окна.

Окончательный код выглядит следующим образом:

var authResponse = FB.getAuthResponse(); 
if (authResponse && authResponse.signedRequest) { 
    addFieldsAndSubmit(authResponse.signedRequest); 
} else { 
    FB.login(function(response) { 
     if (response && response.authResponse) { 
      addFieldsAndSubmit(response.authResponse.signedRequest); 
     } 
    }, {scope:'email', display: 'popup'}); 
}