我正在努力使浏览器阻止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触发登录过程)
EDIT 我已将网站的片段(登录页面)部署到GAE中的测试URL:https://udacity-test-helloworld.appspot.com/login。如果成功,应重定向到包含“测试主页”的页面。
很多很多,先谢谢, Mateusz
答案 0 :(得分:0)
现代浏览器阻止客户端弹出窗口,直到您授予打开权限。您可以使用像php-sdk这样的东西在另一个空白页面中重定向用户,进行相同的操作(登录),并避免javascript弹出窗口阻塞。 阻止弹出窗口它是一个浏览器功能所以,就像luschn在评论中写道,你应该依赖浏览器。
继承人脸书的php-sdk:https://github.com/facebook/php-graph-sdk 下面是文件:https://developers.facebook.com/docs/reference/php/
希望它有所帮助;)