2017-04-10 61 views
2

電子郵件我下面這個教程對春季引導通過OAuth: https://spring.io/guides/tutorials/spring-boot-oauth2/的Facebook的OAuth不返回用戶

在「點擊」應用程序,我說:

security: 
oauth2: 
client: 
    clientId: 233668646673605 
    clientSecret: 33b17e044ee6a4fa383f46ec6e28ea1d 
    scope: email <------- ***** THIS IS WHAT I ADDED ***** --------- 
    accessTokenUri: https://graph.facebook.com/oauth/access_token 
    userAuthorizationUri: https://www.facebook.com/dialog/oauth 
    tokenName: oauth_token 
    authenticationScheme: query 
    clientAuthenticationScheme: form 
resource: 
    userInfoUri: https://graph.facebook.com/me 

logging: 
    level: 
    org.springframework.security: DEBUG 

我用的一個我的測試Facebook帳戶和一切工作。 Principal對象包含電子郵件地址。上述配置文件中的憑證是本教程的一部分。

要進行測試,我自己註冊的OAuth應用程序,我去了我的正常帳戶,並創建與使用Facebook登錄作爲產品的一個應用程序開發者的Facebook帳戶。

我然後放在我自己的clientId和clientSecret到YAML文件,重新打包應用程序並運行它。

電子郵件地址對於相同的測試Facebook帳戶沒有收到來自Facebook。

任何想法,爲什麼一個在教程的工作和我沒有?

這裏是我的Facebook登錄的配置是這樣的: enter image description here

任何想法?

任何幫助將不勝感激!

謝謝!

+0

由於!您剛剛發佈您的應用程序ID和祕密在這裏,每個人現在已經爲您的應用程序有效的訪問令牌......你需要去重新設置應用程序的祕密在你的應用程序儀表板,現在。 – CBroe

回答

7

好吧,我終於找到它了,所以這裏還有誰可能會遇到這種張貼。我很難找到答案。

你寫的Facebook圖形API之前教程改變。

現在,僅僅因爲你指定'範圍:電子郵件',它只是允許你你得到的電子郵件(用戶批准後)。然而,實際上得到的電子郵件,你需要明確指定在URL本身。因此,在上面的配置,這條線會改變(沒有額外的「域=電子郵件,姓名?」):

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

這是一個改變Facebook的API爲2.4版本。在撰寫本文時,它在2.8。請參閱此鏈接: https://developers.facebook.com/blog/post/2015/07/08/graph-api-v2.4/

(尤其要注意些什麼,它說在第三子彈,起價「較少默認領域獲得更快的性能..」

希望這可以幫助別人

+0

這確實幫助,謝謝!當人們碰到這個問題,我現在建議總是嘗試OAuth爲您提供的訪問令牌[Graph API Explorer](https://developers.facebook.com/tools/explorer/)。 –

+0

即使我要求爲電子郵件範圍和我?fields =電子郵件臉書仍然不會返回電子郵件! – sam360