java - HTTP 状态 500 - 没有可用的 token 。推特4j 4.0.3

标签 java twitter

我正在尝试将 Twitter 登录集成到我的虚拟 Web 应用程序中。但是在获取 OAuthAccessToken 时,它说

HTTP 状态 500 - 没有可用 token 。

这是我创建 Twitter 实例的代码

twitterConfigurationBuilder = new ConfigurationBuilder();
        twitterConfigurationBuilder.setDebugEnabled(true)
                .setOAuthConsumerKey(oAuthConsumerKey)
                .setOAuthConsumerSecret(oAuthConsumerSecret);
twitterInstance = (new TwitterFactory(
                twitterConfigurationBuilder.build())).getInstance();

这里我如何重定向进行身份验证:

RequestToken requestToken = twitterInstance
                    .getOAuthRequestToken(callBackURL);
            req.getSession().setAttribute("requestToken", requestToken);
            resp.sendRedirect(requestToken.getAuthenticationURL());

这里我如何获取 OAuthAccessTken

RequestToken token = (RequestToken) req.getSession().getAttribute(
                "requestToken");
        String verifier = req.getParameter("oauth_verifier");
        req.getSession().removeAttribute("requestToken");
        try {
            // Exception Occurred here
            twitterInstance.getOAuthAccessToken(token, verifier);
        } catch (TwitterException e) {
            e.printStackTrace();
        }

这是堆栈跟踪:

java.lang.IllegalStateException: No Token available.
    twitter4j.auth.OAuthAuthorization.ensureTokenIsAvailable(OAuthAuthorization.java:71)
    twitter4j.auth.OAuthAuthorization.getOAuthAccessToken(OAuthAuthorization.java:131)
    twitter4j.auth.OAuthAuthorization.getOAuthAccessToken(OAuthAuthorization.java:146)
    twitter4j.TwitterBaseImpl.getOAuthAccessToken(TwitterBaseImpl.java:362)
    com.xxx.social.controller.Twitter.doGet(Twitter.java:67)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

附注 我尝试了 twitter4j 4.0.3 和 4.0.4 并在 pom 中包含 core,stream api

最佳答案

RequestToken 为 null,位于

RequestToken token = (RequestToken) req.getSession().getAttribute(
                "requestToken");

关于java - HTTP 状态 500 - 没有可用的 token 。推特4j 4.0.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35558821/

相关文章:

java - 使用自定义命令行程序启动 jar

java - 使用spring MVC 3获取问号而不是重音字母

php - 请求大量 Twitter API 数据、服务或操作方法?

php - 将多个社交媒体网站上的关注者数量提升到一种XML

ruby-on-rails - 使用 Dalli 缓存 Twitter 结果

java - 为序列化设置一个 transient 字段,但为 JPA 设置非 transient 字段

java - 如何在mybatis中获取值为列表的 map

Java:通过调用方法打印三角形和空格

Android,如何过滤只有 Facebook 和 Twitter 的社交分享?

ios - TWRequest iOS API 是否支持仅应用程序身份验证?