2012-03-25 2 views
0

У меня есть веб-приложение, которое использует Twitter OAUTH для входа в систему. Я пользуюсь Twitter4J версии 2.1.11Signin с Twitter перестали работать внезапно

Это приложение работает безупречно и перестало работать совсем недавно, возможно, за последние пару недель.

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) 

Я сделал некоторые поиски и проверить, что у меня есть обратный вызов URL установлен правильно в настройках моего приложения в dev.Twitter.com

я еще не регенеририрован ключ и секретный код, но будет следующим шагом, если я не смогу заставить его работать.

У кого-нибудь есть ключ, почему это перестанет работать?

+0

Вы проверили правильность установки часов? – abraham

+0

@abraham Спасибо, я проверю часы. Эта ссылка (https://dev.twitter.com/discussions/1043) предполагает, что часы моего сервера должны быть в пределах 5 минут от их часов ... проверит это. Благодарю. – Parag

+0

@abraham Часы сервера отключились, но более 5 минут. Я действительно удивлен, что часы виртуального сервера могут отставать. Это, вероятно, накапливалось медленно и превышало 5 минут. Ты был прав. Можете ли вы отправить свой комментарий в качестве ответа, чтобы я мог его принять. Спасибо Параг. – Parag

ответ

1

Убедитесь, что часы серверов установлены правильно. Если это больше, чем на несколько минут от запросов Twitter, это провалится.

Смежные вопросы