我按照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:
@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的新手,我通常使用它构建REST API' s JAX-RS)
答案 0 :(得分:3)
我遇到了同样的问题,我在响应地图中只获得了id
和name
字段。
@luschn是对的。我们需要明确指定响应字段。
对于电子邮件,我将userInfoUri属性修改为
resource:
userInfoUri: https://graph.facebook.com/me?fields=id,name,email
使用此图表资源管理器工具查看您的回复中需要的字段。
https://developers.facebook.com/tools/explorer/
快乐的编码!