2015-10-27 82 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)