Grails:Oauth Twitter用户ID来自令牌

Grails:Oauth Twitter用户ID来自令牌,grails,oauth,oauth-2.0,twitter-oauth,scribe,Grails,Oauth,Oauth 2.0,Twitter Oauth,Scribe,它的grails项目, Twitter身份验证成功, 如何从收到的oauth_令牌获取twitter用户ID? 谢谢你试试这个 配置: import org.scribe.builder.api.TwitterApi ... oauth { providers { twitter { api = TwitterApi key = 'YOUR_KRY' secret = 'YOUR_SECRET' callback =

它的grails项目,
Twitter身份验证成功,
如何从收到的oauth_令牌获取twitter用户ID?
谢谢你试试这个

配置:

import org.scribe.builder.api.TwitterApi
...
oauth {
  providers {
    twitter {
        api = TwitterApi
        key = 'YOUR_KRY'
        secret = 'YOUR_SECRET'

        callback = "http://localhost:8080/appName/oauth/twitter/callback"

        successUri = "http://localhost:8080/appName/myController/twitterSuccess"
        failureUri = "http://localhost:8080/appName/myController/twitterFailure"
    }
  }
}
def twitterSuccess() {
    Token twitterAccessToken = (Token) session[oauthService.findSessionKeyForAccessToken('twitter')]
    def twitterResource = oauthService.getTwitterResource(twitterAccessToken, "https://api.twitter.com/1.1/account/settings.json")
    def twitterResponse = JSON.parse(twitterResource?.getBody())

    def twitterResourceDetailed = oauthService.getTwitterResource(twitterAccessToken, "https://api.twitter.com/1.1/users/show.json?screen_name=${twitterResponse['screen_name']}")
    def twitterResponseDetailed = JSON.parse(twitterResourceDetailed?.getBody())

    log.info "twitterId = ${twitterResponseDetailed['id']}"
    ...
}
MyController:

import org.scribe.builder.api.TwitterApi
...
oauth {
  providers {
    twitter {
        api = TwitterApi
        key = 'YOUR_KRY'
        secret = 'YOUR_SECRET'

        callback = "http://localhost:8080/appName/oauth/twitter/callback"

        successUri = "http://localhost:8080/appName/myController/twitterSuccess"
        failureUri = "http://localhost:8080/appName/myController/twitterFailure"
    }
  }
}
def twitterSuccess() {
    Token twitterAccessToken = (Token) session[oauthService.findSessionKeyForAccessToken('twitter')]
    def twitterResource = oauthService.getTwitterResource(twitterAccessToken, "https://api.twitter.com/1.1/account/settings.json")
    def twitterResponse = JSON.parse(twitterResource?.getBody())

    def twitterResourceDetailed = oauthService.getTwitterResource(twitterAccessToken, "https://api.twitter.com/1.1/users/show.json?screen_name=${twitterResponse['screen_name']}")
    def twitterResponseDetailed = JSON.parse(twitterResourceDetailed?.getBody())

    log.info "twitterId = ${twitterResponseDetailed['id']}"
    ...
}
您可以从我的git repo中获得工作示例

试试这个

配置:

import org.scribe.builder.api.TwitterApi
...
oauth {
  providers {
    twitter {
        api = TwitterApi
        key = 'YOUR_KRY'
        secret = 'YOUR_SECRET'

        callback = "http://localhost:8080/appName/oauth/twitter/callback"

        successUri = "http://localhost:8080/appName/myController/twitterSuccess"
        failureUri = "http://localhost:8080/appName/myController/twitterFailure"
    }
  }
}
def twitterSuccess() {
    Token twitterAccessToken = (Token) session[oauthService.findSessionKeyForAccessToken('twitter')]
    def twitterResource = oauthService.getTwitterResource(twitterAccessToken, "https://api.twitter.com/1.1/account/settings.json")
    def twitterResponse = JSON.parse(twitterResource?.getBody())

    def twitterResourceDetailed = oauthService.getTwitterResource(twitterAccessToken, "https://api.twitter.com/1.1/users/show.json?screen_name=${twitterResponse['screen_name']}")
    def twitterResponseDetailed = JSON.parse(twitterResourceDetailed?.getBody())

    log.info "twitterId = ${twitterResponseDetailed['id']}"
    ...
}
MyController:

import org.scribe.builder.api.TwitterApi
...
oauth {
  providers {
    twitter {
        api = TwitterApi
        key = 'YOUR_KRY'
        secret = 'YOUR_SECRET'

        callback = "http://localhost:8080/appName/oauth/twitter/callback"

        successUri = "http://localhost:8080/appName/myController/twitterSuccess"
        failureUri = "http://localhost:8080/appName/myController/twitterFailure"
    }
  }
}
def twitterSuccess() {
    Token twitterAccessToken = (Token) session[oauthService.findSessionKeyForAccessToken('twitter')]
    def twitterResource = oauthService.getTwitterResource(twitterAccessToken, "https://api.twitter.com/1.1/account/settings.json")
    def twitterResponse = JSON.parse(twitterResource?.getBody())

    def twitterResourceDetailed = oauthService.getTwitterResource(twitterAccessToken, "https://api.twitter.com/1.1/users/show.json?screen_name=${twitterResponse['screen_name']}")
    def twitterResponseDetailed = JSON.parse(twitterResourceDetailed?.getBody())

    log.info "twitterId = ${twitterResponseDetailed['id']}"
    ...
}
您可以从我的git repo中获得工作示例

试试这个

配置:

import org.scribe.builder.api.TwitterApi
...
oauth {
  providers {
    twitter {
        api = TwitterApi
        key = 'YOUR_KRY'
        secret = 'YOUR_SECRET'

        callback = "http://localhost:8080/appName/oauth/twitter/callback"

        successUri = "http://localhost:8080/appName/myController/twitterSuccess"
        failureUri = "http://localhost:8080/appName/myController/twitterFailure"
    }
  }
}
def twitterSuccess() {
    Token twitterAccessToken = (Token) session[oauthService.findSessionKeyForAccessToken('twitter')]
    def twitterResource = oauthService.getTwitterResource(twitterAccessToken, "https://api.twitter.com/1.1/account/settings.json")
    def twitterResponse = JSON.parse(twitterResource?.getBody())

    def twitterResourceDetailed = oauthService.getTwitterResource(twitterAccessToken, "https://api.twitter.com/1.1/users/show.json?screen_name=${twitterResponse['screen_name']}")
    def twitterResponseDetailed = JSON.parse(twitterResourceDetailed?.getBody())

    log.info "twitterId = ${twitterResponseDetailed['id']}"
    ...
}
MyController:

import org.scribe.builder.api.TwitterApi
...
oauth {
  providers {
    twitter {
        api = TwitterApi
        key = 'YOUR_KRY'
        secret = 'YOUR_SECRET'

        callback = "http://localhost:8080/appName/oauth/twitter/callback"

        successUri = "http://localhost:8080/appName/myController/twitterSuccess"
        failureUri = "http://localhost:8080/appName/myController/twitterFailure"
    }
  }
}
def twitterSuccess() {
    Token twitterAccessToken = (Token) session[oauthService.findSessionKeyForAccessToken('twitter')]
    def twitterResource = oauthService.getTwitterResource(twitterAccessToken, "https://api.twitter.com/1.1/account/settings.json")
    def twitterResponse = JSON.parse(twitterResource?.getBody())

    def twitterResourceDetailed = oauthService.getTwitterResource(twitterAccessToken, "https://api.twitter.com/1.1/users/show.json?screen_name=${twitterResponse['screen_name']}")
    def twitterResponseDetailed = JSON.parse(twitterResourceDetailed?.getBody())

    log.info "twitterId = ${twitterResponseDetailed['id']}"
    ...
}
您可以从我的git repo中获得工作示例

试试这个

配置:

import org.scribe.builder.api.TwitterApi
...
oauth {
  providers {
    twitter {
        api = TwitterApi
        key = 'YOUR_KRY'
        secret = 'YOUR_SECRET'

        callback = "http://localhost:8080/appName/oauth/twitter/callback"

        successUri = "http://localhost:8080/appName/myController/twitterSuccess"
        failureUri = "http://localhost:8080/appName/myController/twitterFailure"
    }
  }
}
def twitterSuccess() {
    Token twitterAccessToken = (Token) session[oauthService.findSessionKeyForAccessToken('twitter')]
    def twitterResource = oauthService.getTwitterResource(twitterAccessToken, "https://api.twitter.com/1.1/account/settings.json")
    def twitterResponse = JSON.parse(twitterResource?.getBody())

    def twitterResourceDetailed = oauthService.getTwitterResource(twitterAccessToken, "https://api.twitter.com/1.1/users/show.json?screen_name=${twitterResponse['screen_name']}")
    def twitterResponseDetailed = JSON.parse(twitterResourceDetailed?.getBody())

    log.info "twitterId = ${twitterResponseDetailed['id']}"
    ...
}
MyController:

import org.scribe.builder.api.TwitterApi
...
oauth {
  providers {
    twitter {
        api = TwitterApi
        key = 'YOUR_KRY'
        secret = 'YOUR_SECRET'

        callback = "http://localhost:8080/appName/oauth/twitter/callback"

        successUri = "http://localhost:8080/appName/myController/twitterSuccess"
        failureUri = "http://localhost:8080/appName/myController/twitterFailure"
    }
  }
}
def twitterSuccess() {
    Token twitterAccessToken = (Token) session[oauthService.findSessionKeyForAccessToken('twitter')]
    def twitterResource = oauthService.getTwitterResource(twitterAccessToken, "https://api.twitter.com/1.1/account/settings.json")
    def twitterResponse = JSON.parse(twitterResource?.getBody())

    def twitterResourceDetailed = oauthService.getTwitterResource(twitterAccessToken, "https://api.twitter.com/1.1/users/show.json?screen_name=${twitterResponse['screen_name']}")
    def twitterResponseDetailed = JSON.parse(twitterResourceDetailed?.getBody())

    log.info "twitterId = ${twitterResponseDetailed['id']}"
    ...
}

您可以从我的git repo中获得工作示例

获取NPE:NullPointerException在处理请求[GET]/TestOAuth2/dashBoard/twitterlogin时发生。我检查了twitterAccessToken是否为空。不确定为什么我会收到twitter和facebook的空令牌。twitter也在git存储库中实现,请看..。您下载并测试了我的应用程序吗?获取NPE:NullPointerException在处理请求时发生:[GET]/TestOAuth2/dashBoard/twitterlogin。我检查了twitterAccessToken是否为空。不确定为什么我会收到twitter和facebook的空令牌。twitter也在git存储库中实现,请看..。您下载并测试了我的应用程序吗?获取NPE:NullPointerException在处理请求时发生:[GET]/TestOAuth2/dashBoard/twitterlogin。我检查了twitterAccessToken是否为空。不确定为什么我会收到twitter和facebook的空令牌。twitter也在git存储库中实现,请看..。您下载并测试了我的应用程序吗?获取NPE:NullPointerException在处理请求时发生:[GET]/TestOAuth2/dashBoard/twitterlogin。我检查了twitterAccessToken是否为空。不知道为什么我会收到twitter和facebook的空令牌。twitter也在git存储库中实现,看看..。你下载并测试了我的应用程序吗?