2016-03-19 79 views
1

我想实现Facebook登录SPA。我正在使用JavaScript SDK进行登录。 Fb授权用户并接收令牌。令牌被发送到Web API。当API试图从令牌中获取数据时,只有Facebook的id和name从Facebook图表api返回。尽管我已经为java脚本sdk中的不同数据设置了范围。如果我使用javascript sdk获取数据。在这种情况下,我可以在范围内获得完整的数据。Facebook的登录休息Api

回答

0

我想你在问:“为什么我没有收到我要求的所有数据?”。如果是这样,最常见的原因是因为没有设置权限。举例来说,如果用户同意"public_profile"那么Facebook将授权您的应用程序,以获取每个字段的"public_profile"许可许可证,在这种情况下,以下内容:通过

FB.api('/me', 
     'GET', 
      {"fields":"id,name"}, //any of the other fields here 
      function(response) { 
      // Insert your code here 
      }); 

但是如果获得

id, name, first_name, last_name, age_range, link, gender, locale, picture, timezone, updated_time, verified 

添加'email'作为字段,那么Facebook将返回除'email'之外的所有内容,因为有专门授予访问用户电子邮件的权限,名为email。你可以在https://developers.facebook.com/docs/facebook-login/permissions 看到什么权限启用了什么数据返回,你可以在https://developers.facebook.com/tools/explorer进行测试。我希望这就是你在你的问题中试图说的话。干杯!