使用Facebook社交插件如何获取grails中的电子邮件地址

时间:2014-12-29 06:49:29

标签: grails facebook-oauth

我想使用grails社交插件获取电子邮件地址。我正在使用facebook插件编译':spring-security-oauth-facebook:0.1' 并在 Config.groovy 中正确配置,如下所示。

      oauth {
         debug = true
         providers {
           facebook {
              api = org.scribe.builder.api.FacebookApi
              key = 'here is my-key'
              secret = 'my-secret-key'
              successUri = '/oauth/facebook/success'
              failureUri = '/oauth/facebook/failure'
              callback = "${baseURL}/oauth/facebook/callback"
              scopes = "email"
            }
         }
      } 

成功响应后,调用以下方法。

     def onSuccess(String provider) {
      if (!provider) {
        log.warn "The Spring Security OAuth callback URL must include the 'provider' URL 
                  parameter"
        throw new OAuthLoginException("The Spring Security OAuth callback URL must include the 
                                       'provider' URL parameter")
     }
      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}'")
      }
    }
    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();

如何使用此获取电子邮件地址。我成功获得了Facebook的回复,但它与Username,socialId,profileId的号码相同,但我需要电子邮件地址,如 myemailid@gmail.com

请帮帮我。

0 个答案:

没有答案