2014-02-13 34 views
0

我正在开发使用Facebook API的应用程序。 Facebook连接。 原来我无法获取电子邮件属性。 问题是什么?Facebook Connect - 接收电子邮件属性

FB.init({ 
      appId : 'CODE', 
      status: true, 
      cookie: true, 
      xfbml: true, 

     }); 

     function statusFacebook() { 
      FB.getLoginStatus(function(response) { 
       if (response.status === 'connected') { 
         FB.api('/me', function(resp) { 
          var nome = resp.name; 
          var email = resp.email; 
          var token = response.authResponse.accessToken; 

         }); 
       } else if (response.status === 'not_authorized') { 
         loginFacebook(); // nao autorizado, solicitar login 
       } 
       else { 
         loginFacebook(); // nao autorizado, solicitar login 
       }}); 
     } 

     function loginFacebook() { 
      FB.login(function(response) { 
        if (response.authResponse) { 
         FB.api('/me', function(resp) { 
          var nome = resp.name; 
          var email = resp.email; 
          var token = response.authResponse.accessToken; 

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

有权限和其他但不工作。 按钮是:<a href="##" onClick="statusFacebook();">Login Facebook</a>

回答

1

试试这个:

function loginFacebook() { 
      FB.login(function(response) { 
        if (response.authResponse) { 
         FB.api('/me', function(resp) { 
          var nome = resp.name; 
          var email = resp.email; 
          var token = response.authResponse.accessToken; 
         }); 
        } 
      }, {scope: 'email'}); 
     } 

正如写在specs,将scope必须声明为第二个参数去FB.login()功能:

FB.login(function(response) { 
    // handle the response 
}, {scope: 'email,user_likes'}); 

https://developers.facebook.com/docs/reference/javascript/FB.login/

+0

我做到这一点,但解决方案是创建一个带范围的fb-button,并在事件onlogin中调用功能..谢谢! –