2012-01-28 96 views
0

我在從Facebook登錄按鈕獲得迴應時出現問題。 並將非常感謝任何即時幫助。 我使用下面的代碼:從facebook登錄按鈕得到迴應

<div id="fb-root"></div> 
<script>(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 = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=MY_APP_ID"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 
</script> 

<div class="fb-login-button" data-show-faces="false" data-width="200" data-max-rows="1"></div> 

<script type="text/javascript"> 
FB.Event.subscribe('auth.authResponseChange', function(response) { 
    if(response.status=="connected") 
    { 
     document.getElementById("fblogin").value=response.authResponse.userID; 
    } 

}); 
</script> 

...但我得到我的JavaScript控制檯中的錯誤:「FB不fefined」和AUTH responeId沒有警報消息收到我的。

請通過異步下面的代碼

<div id="fb-root"></div> 
<script>(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 = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=MY_APP_ID"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 
</script> 

所以,你的FB沒有定義,直到它被載入幫助其非常重要的

回答

-1

您正在加載的Facebook的JavaScript SDK。

嘗試加載FB同步。把下面的代碼並刪除上面的一個,

<script src="//connect.facebook.net/en_US/all.js"></script> 
<script> 
    FB.init({ 
    appId  : 'YOUR_APP_ID', 
    status  : true, // check login status 
    cookie  : true, // enable cookies to allow the server to access the session 
    xfbml  : true // parse XFBML 
    }); 
</script> 
1

或者,如果你想仍然加載JS SDK異步的風格,你可以在window.FbAsyncInit線了您的事件處理程序()像這樣:

window.fbAsyncInit = function() { 
     FB.init({ 
      appId  : 'YOUR_APP_ID', // App ID 
      channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File 
      status  : true, // check login status 
      cookie  : true, // enable cookies to allow the server to access the session 
      xfbml  : true // parse XFBML 
     }); 

     // Additional initialization code here 
     FB.Event.subscribe('auth.authResponseChange', function(response) { 
      if(response.status=="connected") 
      { 
      document.getElementById("fblogin").value=response.authResponse.userID; 
      } 
     }); 

    }; 

<script> 

(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 = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=MY_APP_ID"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 
</script> 
<div class="fb-login-button" data-show-faces="false" data-width="200" data-max-rows="1"> 
    </div> 
<script type="text/javascript"> 

FB.Event.subscribe('auth.authResponseChange', function(response) { 
    if(response.status=="connected") 
    { 
     document.getElementById("fblogin").value=response.authResponse.userID; 
    } 

}); 

</script> 

您可以在這裏看到這種風格(這是Facebook的首選風格):https://developers.facebook.com/docs/reference/javascript/