【问题标题】:Retrieve facebook email address using spring security使用 Spring Security 检索 facebook 电子邮件地址
【发布时间】:2017-05-08 17:30:44
【问题描述】:

我按照this 教程尝试向我的 REST API 验证我的用户,一切正常,我的委托人返回我的姓名,但我似乎没有获得任何其他数据(电子邮件、朋友列表等)范围)。我如何使用弹簧来做到这一点?

Yaml 配置文件:

    security:
  oauth2:
    client:
      clientId: CENSORED
      clientSecret: CENSORED
      accessTokenUri: https://graph.facebook.com/oauth/access_token
      userAuthorizationUri: https://www.facebook.com/dialog/oauth
      tokenName: oauth_token
      authenticationScheme: query
      clientAuthenticationScheme: form
      scope: email,user_friends,public_profile
    resource:
      userInfoUri: https://graph.facebook.com/me
  user:
    password: password

spring:
  social:
    facebook:
      app-id: CENSORED
      app-secret: CENSORED

休息控制器:

    @RestController
public class UserController {

    @RequestMapping(value = "/user", method = RequestMethod.GET)
    public Principal user(FixedPrincipalExtractor extractor, Principal principal)   {

        return principal;
    }
}

我需要此信息,因为我希望能够向我的用户发送邮件,并查看其他“朋友”是否也使用此应用程序。

提前致谢!请询问是否有不清楚的地方。

(我使用 maven 作为包管理器,使用 spring security 作为我的 RESTFul API 的身份验证,它应该连接到我的 AngularJS 前端 || 我是 Spring 新手,我通常使用 JAX-RS 构建 REST API)

【问题讨论】:

标签: spring facebook rest api oauth


【解决方案1】:

我遇到了同样的问题,我在响应映射中只得到了 idname 字段。

@luschn 是对的。我们需要明确指定响应字段。

对于电子邮件,我将 userInfoUri 属性修改为

resource: userInfoUri: https://graph.facebook.com/me?fields=id,name,email

使用此图表浏览器工具查看您的回复中需要哪些字段。

https://developers.facebook.com/tools/explorer/

编码愉快!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    相关资源
    最近更新 更多