java未从Facebook OAuth接收名字、姓氏和姓氏
最近,我从另一个开发人员那里继承了一个spring应用程序,它使用spring Social和spring Security对用户进行身份验证
因为编写它的开发者想停止在Facebook上使用他的应用程序Id,所以我创建了一个新的应用程序Id。这就是问题开始的时候
我把appid和appsecret改成了新的,注册后,Facebook突然停止了发送名字、姓氏和电子邮件地址
一开始我认为这可能是因为我的新Facebook用户也是新应用id的所有者,但不是。该应用仍然使用旧的应用id运行,并且当我与我的用户注册时,上述属性被传递
我错过了什么?在developers.facebook.com上定义Facebook应用程序时,我是否必须切换一些神奇的东西
新应用程序已激活并可供公众使用。设置了站点URL和应用程序域以及有效的OAuth重定向URI
我目前正试图在localhost
上测试应用程序,Facebook应用程序设置中设置的域也是如此
如果我使用getName()
,org.springframework.social.connect.UserProfile
的实例返回用户的名称,但是getFirstName()
、getLastName()
和getEmail()
都返回null
# 1 楼答案
问题确实在于,旧的Facebook应用程序使用了低于2的Graph API版本,并且与
spring-social-facebook
包版本1.1.0
完美配合如果你想创建一个新的Facebook应用程序,就不可能再使用Graph API 1了。十,
解决方案是将
spring-social-facebook
包升级到2.0.2
版本,并将以下代码段从到