我有一个Facebook画布应用程序,它首先调用FB.getAuthResponse()
,必要时调用FB.login()
。JS SDK的文档清楚地说明FB.login()
打开一个登录弹出窗口,当我直接击中画布URL时,这是正确的。但是,当我在画布页面中作为匿名用户做同样的事情时,出现"未登录"灯箱并重定向到登录页面。
是否有任何方法统一这种行为(最好总是使用弹出)?
事实证明,当使用JS SDK - FB.login()
接受display
参数定义窗口的显示模式时,可以显式指定登录窗口的'格式'。
最终代码看起来像这样:
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'});
}