fb-login-button(html)触发浏览器

时间:2017-11-29 11:35:55

标签: javascript facebook facebook-graph-api facebook-javascript-sdk

我正在努力使浏览器阻止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

1 个答案:

答案 0 :(得分:0)

现代浏览器阻止客户端弹出窗口,直到您授予打开权限。您可以使用像php-sdk这样的东西在另一个空白页面中重定向用户,进行相同的操作(登录),并避免javascript弹出窗口阻塞。 阻止弹出窗口它是一个浏览器功能所以,就像luschn在评论中写道,你应该依赖浏览器。

继承人脸书的php-sdk:https://github.com/facebook/php-graph-sdk 下面是文件:https://developers.facebook.com/docs/reference/php/

希望它有所帮助;)