我有一个使用Twitter的OAUTH登录用户的Web应用程序。我正在使用Twitter4J版本2.1.11
这个应用程序一直运行良好,并且最近停止了工作,可能在过去的几周内。
public static void authWithTwitter() {
try {
Twitter twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer(TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET);
RequestToken requestToken = twitter.getOAuthRequestToken(getTwitterCallbackUrl());
// save requestToken for retreival after user logs in
// code not shown for brevity
redirect(requestToken.getAuthenticationURL());
} catch(Exception e) {
cLogger.error("Could not perform pre twitter login steps", e);
}
}
此代码将(直到应用程序正在运行)将用户重定向到Twitter的登录页面,该页面在成功验证后将调用回调URL。
但是,最近,这已停止工作,我得到以下例外。
401:Authentication credentials (http://dev.twitter.com/pages/auth) were missing or incorrect. Ensure that you have set valid conumer key/secret, access token/secret, and the system clock in in sync.
Failed to validate oauth signature and token
Relevant discussions can be on the Internet at:
http://www.google.co.jp/search?q=8dda30a8 or
http://www.google.co.jp/search?q=68161d96
TwitterException{exceptionCode=[8dda30a8-68161d96], statusCode=401, retryAfter=0, rateLimitStatus=null, version=2.1.11}
at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:199)
at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:75)
at twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:112)
at twitter4j.http.OAuthAuthorization.getOAuthRequestToken(OAuthAuthorization.java:148)
at twitter4j.TwitterOAuthSupportBaseImpl.getOAuthRequestToken(TwitterOAuthSupportBaseImpl.java:88)
at twitter4j.Twitter.getOAuthRequestToken(Twitter.java:58)
我做了一些搜索并验证我在dev.Twitter.com的应用设置中正确设置了回调网址
我还没有重新生成密钥和消费者的秘密,但如果我无法让它发挥作用,那将是下一步。
有没有人知道为什么会停止工作?
答案 0 :(得分:1)
确保正确设置服务器时钟。如果离Twitter超过几分钟,请求就会失败。