2012-05-15 39 views
2

今天有人告诉我,“Facebook登录按钮”突然消失,在他的网站上,我昨天实际上工作正常,我根本没有更改任何代码几个星期,我已经激活了七月,八月的变化,因为我做的网站,以避免这种问题fb:登录按钮不显示,代码没有更改

这是我的代码

 <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> 

回答

8

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

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

对你来说将类似于(假设你使用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> 
+0

旧的答案,但非常有帮助。谢谢! –