fb:登录按钮未显示,未更改代码

Jos*_*eia 3 facebook

今天有人报告我,"Facebook登录按钮"突然消失了,在他的网站上我做了,实际上昨天工作正常,我几周没有改变任何代码,我已经激活了7月,8月以来我做的变化网站,以避免这个问题

这是我的代码

        <div id="fb-root"></div>
        <div class="fb-login-button" onlogin="Facebook_login()" autologoutlink="true">Login with Facebook</div> 
        <script>
            window.fbAsyncInit = function() {
            FB.init({
                    appId      : 'FB APP ID',
                    status     : false, 
                    cookie     : true,
                    xfbml      : true,
                    oauth      : true
                });
            };


            (function(d){
            var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
            js = d.createElement('script'); js.id = id; js.async = true;
            js.src = "//connect.facebook.net/en_US/all.js";
            d.getElementsByTagName('head')[0].appendChild(js);
            }(document));

          function Facebook_login () {
            FB.getLoginStatus(function(response) {
                if (response.status === 'connected') {
                    window.location = "THE URL TO PROCESS THE LOGIN";

                }
            });
          }                
        </script>
Run Code Online (Sandbox Code Playgroud)

Wea*_*key 8

我们在网站上遇到了同样的问题.看起来Facebook已经改变了登录按钮的实现,它现在在iframe中创建.它也不再支持'onlogin'属性(不再在文档中).

我们通过使用FB SDK FB.login方法添加我们自己的按钮来修复.

对于你来说,它看起来类似于(假设你为click事件使用jQuery)

<div id="fb-root"></div>
        <button class="fb_login">Login with Facebook</button> 
        <script>
            window.fbAsyncInit = function() {
               FB.init({
                    appId      : 'FB APP ID',
                    status     : false, 
                    cookie     : true,
                    xfbml      : true,
                    oauth      : true
                });
                $(".fb_login").click(function() {
                   FB.login(Facebook_login);
                }); 
            };


            (function(d){
            var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
            js = d.createElement('script'); js.id = id; js.async = true;
            js.src = "//connect.facebook.net/en_US/all.js";
            d.getElementsByTagName('head')[0].appendChild(js);
            }(document));

          function Facebook_login () {
            FB.getLoginStatus(function(response) {
                if (response.status === 'connected') {
                    window.location = "THE URL TO PROCESS THE LOGIN";

                }
            });
          }                
        </script>
Run Code Online (Sandbox Code Playgroud)