【问题标题】:Grails: Oauth Twitter userID from tokenGrails:来自令牌的 Oauth Twitter 用户 ID
【发布时间】:2013-12-02 04:50:19
【问题描述】:

它的 grails 项目,
推特认证成功,
如何从收到的这个 oauth_token 中获取 twitter 用户 ID?
谢谢

【问题讨论】:

    标签: grails oauth oauth-2.0 twitter-oauth scribe


    【解决方案1】:

    试试这个..,.

    配置:

    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 存储库中获取工作示例。 Grails Oauth Plugin Demo.

    【讨论】:

    • 获取 NPE:处理请求时发生 NullPointerException:[GET] /TestOAuth2/dashBoard/twitterlogin。我检查了 twitterAccessToken 是否为空。不知道为什么我会收到 twitter 和 facebook 的 null 令牌。
    • Twitter也在git仓库中实现,看看..,.
    • 您下载并测试了我的应用程序吗?
    猜你喜欢
    • 1970-01-01
    • 2012-12-21
    • 2012-06-22
    • 1970-01-01
    • 2011-09-05
    • 2017-01-10
    • 1970-01-01
    • 2017-09-09
    • 2012-08-20
    相关资源
    最近更新 更多