2016-12-23 122 views
0

我也跟着上嘗試我的用戶進行身份驗證到我的REST API,一切正常this教程和我的委託人返回我的名字,但我似乎並沒有得到任何其他的數據(電子郵件,朋友列表等在範圍內)。我如何使用彈簧來做到這一點?檢索Facebook的電子郵件地址,使用彈簧安全

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安全性作爲我的RESTFul API的身份驗證它應該連接到我的AngularJS前端||我是Spring的新手,我通常使用JAX-RS構建REST API)

+1

我不知道春天,但我認爲它是關於聲明的字段。看看這個線程:http://stackoverflow.com/questions/32584850/facebook-js-sdks-fb-api-me-method-doesnt-return-the-fields-i-expect-in-gra – luschn

回答

0

我這裏也有我只是在響應地圖idname領域同樣的問題。

@luschn是正確的。我們需要明確指定響應領域。

對於電子郵件,我修改了userInfoUri財產

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

使用該圖形資源管理器工具,看看有什麼字段,你在你的反應需要。

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

編碼愉快!

相關問題