我在浏览器阻止的Facebook登录弹出窗口正在努力。我正在使用FB-Login-Button HTML代码来初始化FB登录过程,如下所示:
<div class="fb-login-button" data-max-rows="1" data-size="large" data-button-type="continue_with" data-show-faces="true" data-auto-logout-link="false" data-use-continue-as="true" data-scope="user_friends, email, public_profile"></div>
我以FB文档中指定的常规方式初始化Facebook JS:
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'myAppID',
cookie : true,
xfbml : true,
version : 'v2.11'
});
FB.AppEvents.logPageView();
fbApiInit = true; //init flag
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "https://connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
但是,每当用户单击"继续使用Facebook"按钮时,弹出窗口将被浏览器阻止。
有人遇到了类似的问题吗?有人有建议的解决方案吗?(我知道浏览器会阻止用户直接提示弹出窗口,但我在哪里努力检查/修改HTML FB-Login-button触发登录过程的方式)
编辑我已将网站的片段(登录页面)部署到GAE中的测试URL:https://udacity-test-helloworld.appspot.com/login。如果成功应将"测试主页"的页面重定向。
很多事前都非常感谢mateusz
现代浏览器阻止客户端弹出窗口,直到您允许打开。您可以使用诸如PHP-SDK之类的内容将用户重定向另一个空白页,并进行相同的操作(登录),并避免JavaScript弹出窗口阻止。阻止弹出窗口是一个浏览器功能,因此,就像Luschn在评论中所写的那样,您应该依靠浏览器。
HER是Facebook的PHP-SDK:https://github.com/facebook/php-graph-sdk这是文档:https://developers.facebook.com/docs/reference/php/
希望它有帮助;)