有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    问题确实在于,旧的Facebook应用程序使用了低于2的Graph API版本,并且与spring-social-facebook包版本1.1.0完美配合

    如果你想创建一个新的Facebook应用程序,就不可能再使用Graph API 1了。十,

    解决方案是将spring-social-facebook包升级到2.0.2版本,并将以下代码段从

    @Bean
    public ProviderSignInUtils providerSignInUtils() {
        return new ProviderSignInUtils();
    }
    

    @Bean
    public ProviderSignInUtils providerSignInUtils(
            final ConnectionFactoryLocator connectionFactoryLocator,
            final UsersConnectionRepository usersConnectionRepository) {
        return new ProviderSignInUtils(connectionFactoryLocator,
                usersConnectionRepository);
    }