用户的电子邮件始终为NULL - Spring Social Facebook登录

fel*_*ipe 3 email spring facebook facebook-graph-api

根据Facebook的官方文档,电子邮件访问权限提供给用户接受的任何应用程序,并在使用Facebook登录时授予权限.

我已经仔细检查了我们的应用程序定义,我可以看到电子邮件应该可以访问.

在此输入图像描述

我正在使用Spring Social提供的最新产品

<spring-social-security>1.1.4.RELEASE</spring-social-security>
<spring-social-core>1.1.4.RELEASE</spring-social-core>
<spring-social-facebook>2.0.3.RELEASE</spring-social-facebook>
Run Code Online (Sandbox Code Playgroud)

用户使用Facebook作为提供商以及Google+和Twitter成功登录.

不幸的是,除了我自己的用户之外,所有情况下电子邮

有两种情况,电子邮件可能为空

  • 如果有人使用电话号码而不是电子邮件地址注册Facebook,则电子邮件字段可能为空
  • 如果没有有效的电子邮件地址,则不会返回此字段

我通过访问我的朋友的帐户来检查这个问题

  1. 它有一个有效的电子邮件验证
  2. 它有一个与之相关的电话号码
  3. 我们是彼此的朋友
  4. 他的朋友可以看到他的电话和电子邮件

我去GraphApi浏览器,但没有返回任何电子邮件.

有什么建议?谢谢.

fel*_*ipe 6

我找到了问题所在.我没有将所需的范围添加到社交连接工厂.

FacebookConnectionFactory fcf = new FacebookConnectionFactory(
            env.getProperty("oauth.facebook.api.key"),
            env.getProperty("oauth.facebook.api.secret"));
   //this is the important bit 
   fcf.setScope("public_profile,email");

   .....
Run Code Online (Sandbox Code Playgroud)

电子邮件丢失了.