2017-04-10 66 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