Spring 社交 Facebook oauth - 使用 api v2.5 获取并非所有数据

Spring social Facebook oauth - getting not all data with api v2.5

我正在尝试使用 Spring Social 实现 facebook oauth,作为它的一部分,我调用以下 uri

https://www.facebook.com/v1.0/dialog/oauth?client_id=12345678900&response_type=code&redirect_uri=http://some_uri.com&success_url=some_uri.com&error_url=some_uri.com&scope=email%2C+user_birthday

而且我得到了令牌。 然而,当我尝试

Facebook facebookTemplate = new FacebookTemplate(accessToken);
FacebookProfile facebookProfile = facebook.userOperations().getUserProfile();

api returns 包含所有数据(电子邮件、link 等)的完整 Facebook 个人资料,仅在我已将我的应用配置为在开发人员中使用 Facebook 应用时使用使用 api 2.3 的控制台。 至于今天,控制台中所有新创建的应用程序使用的 api 的最新版本是 2.5。 如果我使用 api 2.5 新创建的应用程序,它 returns 不是所有数据 - 基本上只有用户名和 ID 存在。 我使用 Spring 社交 facebook 版本 1.1.1.RELEASE 和 Spring 社交 1.1.0.RELEASE

我可以指定一些参数或更新库或代码,以便使用新创建的应用程序 api 2.5 版获取所有数据吗?

Spring Social Facebook v2.0.3.RELEASE 以 Graph API v2.5 为目标,应该包含您要查找的字段。

您缺少瞄准镜。默认情况下 spring-social-facebook 的范围是 public_profile。它只会有一些有限的信息。

改用"email scope"。参考这个 link Facebook oauth scopes

您可以通过这种方式更改范围facebookConnectionFactory.setScope("email");