我正在尝试将 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/