2015-10-27 80 views
0

我正在嘗試將FB登錄與我的html網站集成。我正在使用FB Javascript SDK版本2.5。彈出窗口會打開並詢問用戶的用戶名和密碼,但不要求電子郵件,公共個人資料,位置等權限,儘管我已經在範圍參數中給出了所需的權限。以下是我的代碼。FB.login不要求權限

HTML代碼:

<div id="btnFBLogin"> <img style="width: 35%" 
             src="assets/img/icons/facebookloginbutton.png" /> 
</div> 

初始化FB的Javascript SDK和被初始化的文檔加載:

window.fbAsyncInit = function() { 
     FB.init({ 
      appId  : 'XXXXXXXXX', 
      xfbml  : true, 
      oauth  : true, 
      version : 'v2.5' 
     }); 
     }; 

     //Load SDK 

     (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')); 

調用的FB.login API:

$('#btnFBLogin').on('click',function(){ 

      FB.login(function(response) { 

       console.log(JSON.stringify(response)); 


       if (response.status === 'connected') { 
        // Logged into your app and Facebook. 

FB.api('/me', function(response) { 
      console.log('Successful login for: ' + response.name); 
     }); 

       } else if (response.status === 'not_authorized') { 
        // The person is logged into Facebook, but not your app. 
        document.getElementById('status').innerHTML = 'Please log ' + 
        'into this app.'; 
       } else { 

        document.getElementById('status').innerHTML = 'Please log ' + 
        'into Facebook.'; 
       } 

     }, {scope: 'public_profile,email'}); 

     }); 

後的反應物返回通過FB.api登錄('/ me',函數(響應)只給出登錄用戶的完整名稱。它不是給我的電子郵件ID,雖然我已經發送它在範圍參數。

回答

0

你需要傳遞必填字段中的URL一樣

FB.api('/me?fields=id,first_name,last_name,friends,email',function(response)