2012-05-15 40 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

舊的答案,但非常有幫助。謝謝! –