0

我們希望允許用戶通過Facebook登錄我們的網站。但是,我怎樣才能讓Facebook的按鈕返回用戶的電子郵件和用戶名呢?如何從Facebook登錄按鈕獲取電子郵件和用戶名?

身體標籤之後:

<script> 
    window.fbAsyncInit = function() { 
     FB.init({ 
      appId  : '331796760587640', 
      cookie  : true, 
      xfbml  : true, 
      version : 'v2.9' 
     }); 
     FB.AppEvents.logPageView(); 
    }; 

    (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_US/sdk.js"; 
     fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 

</script> 
在導航欄(或登錄菜單)

<div class="fb-login-button" data-max-rows="1" data-size="small" data-button-type="login_with" data-show-faces="false" data-auto-logout-link="false" data-use-continue-as="false"></div> 

不過貌似這只是它們記錄到Facebook上,而不是我們的網站。如何在點擊按鈕後獲取用戶的電子郵件和用戶名?類似這樣的:

var username = ??? 
var email = ??? 
attempt_login(username, email); 
+0

閱讀https://developers.facebook.com/docs/facebook-login/web/accesstokens – ceejayoz

+0

我看到了,但我仍然沒有線索如何使用它。我試圖FB.getLoginStatus(功能(響應){ \t \t \t \t的console.log(響應); \t \t \t \t的console.log( 「FB電子郵件:」 + response.email); \t \t \t \t控制檯。日誌(「FB name:」+ response.name); \t \t \t});在那裏,但電子郵件和名稱是不確定的 – ioan

+0

此外FB.api( '/我',函數(響應){ \t \t \t \t的console.log( 「FB API」); \t \t \t \t的console.log(JSON .stringify(response)); \t \t \t});給出一個錯誤:{「error」:{「message」:「一個活動的訪問令牌必須用於查詢關於當前用戶的信息。」,「type」:「OAuthException」,「code」:2500,「fbtrace_id」: 「E + UtQncZIZ0」}} – ioan

回答

1

您無法從登錄響應中獲取該信息。您需要使用登錄響應中的訪問令牌添加第二個電話給me?fields=name,email

相關問題