gpt4 book ai didi

grails - 如何使用 Grails 社交插件从 Facebook 获取电子邮件 ID

转载 作者:行者123 更新时间:2023-12-04 22:45:39 28 4
gpt4 key购买 nike

我在我的应用程序中使用 spring-security-oauth-facebook:0.1 grails 插件。现在我想访问个人的电子邮件 ID,但我无法每次 facebook 服务器响应 1829812989120 for socialId,用户名,profileId 和在返回 Map 对象时没有电子邮件选项。为什么会发生这种情况。

     oauth {
debug = true
providers {
facebook {
api = org.scribe.builder.api.FacebookApi
key = 'my-app-key'
secret = 'secret-key'
successUri = '/oauth/facebook/success'
failureUri = '/oauth/facebook/failure'
callback = "${baseURL}/oauth/facebook/callback"
scopes = "['public_profile','email','name','user']"

}

def sessionKey = oauthService.findSessionKeyForAccessToken(provider)

if (!session[sessionKey]) {
log.warn "No OAuth token in the session for provider '${provider}'"
throw new OAuthLoginException("Authentication error for provider '${provider}'")
}
// Create the relevant authentication token and attempt to log in.

OAuthToken oAuthToken = springSecurityOAuthService.createAuthToken(provider,
session[sessionKey])
println "oAuthToken.principal = "+oAuthToken.principal.toString();
println "oAuthToken.socialId = "+oAuthToken.socialId;
println "oAuthToken.properties= "+oAuthToken.properties
println "oAuthToken.properties= "+oAuthToken.name
println "oAuthToken.properties= "+oAuthToken.toString();

1)我检查了所有 println 值电子邮件都不存在。
请帮助我如何获取登录用户的电子邮件地址。

最佳答案

创建 session 后使用此代码

OAuthToken oAuthToken = springSecurityOAuthService.createAuthToken(provider, 
session[sessionKey])
Token facebookAccessToken = (Token) session[oauthService.findSessionKeyForAccessToken('facebook')]

println "Facebook token :"+facebookAccessToken

def facebookResource = oauthService.getFacebookResource(facebookAccessToken , "https://graph.facebook.com/me")

def facebookResponse = JSON.parse(facebookResource?.getBody())

关于grails - 如何使用 Grails 社交插件从 Facebook 获取电子邮件 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27656681/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com