2013-02-13 10 views
5

Mam następujący kod w Google AppEngine aby sprawdzić, czy poświadczenia twitter obowiązują przy użyciu twitter4jTwitter4J zweryfikowania poświadczeń i połowu błąd

public void doGet(HttpServletRequest req, HttpServletResponse resp) { 
    String Test = "Testing Twitter4J"; 
    try { 

     ConfigurationBuilder confbuilder = new ConfigurationBuilder(); 
     confbuilder.setOAuthAccessToken("A") 
     .setOAuthAccessTokenSecret("B") 
     .setOAuthConsumerKey("C") 
     .setOAuthConsumerSecret("D"); 
     Twitter twitter = new TwitterFactory(confbuilder.build()).getInstance(); 

     //Status status = twitter.updateStatus("Working lunch today"); 
     User user = twitter.verifyCredentials(); 
     Test = "Successfully updated the status to [" + user.getScreenName() + "]."; 

    } catch (TwitterException e) { 
     Test = "no"; 
    } 
    try { 
     resp.getOutputStream().write(Test.getBytes()); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    return; 
} 

Jeśli poświadczenia są ważne że działa zgodnie z oczekiwaniami. Gdybym więc odwołać dostęp poświadczenia nie są ważne pojawia się błąd App Engine:

Uncaught exception from servlet 
twitter4j.TwitterRuntimeException: 401:Authentication credentials (https://dev.twitter.com/pages/auth) were missing or incorrect. Ensure that you have set valid consumer key/secret, access token/secret, and the system clock is in sync. 
message - Invalid or expired token 
code - 89 

Relevant discussions can be found on the Internet at: 
    http://www.google.co.jp/search?q=93f2523c or 
    http://www.google.co.jp/search?q=8b74a4e3 
TwitterException{exceptionCode=[93f2523c-8b74a4e3], statusCode=401, message=Invalid or expired token, code=89, retryAfter=-1, rateLimitStatus=null, version=3.0.3} 

z "user user = twitter.verifyCredentials();" linia. Spodziewałem się wyrzucenia wyjątku TwitterException z javadoc pod adresem: http://twitter4j.org/javadoc/twitter4j/api/UsersResources.html#verifyCredentials() , ale wygląda na to, że otrzymałem wyjątek TwitterRuntimeException. Czemu? Nie mogę znaleźć żadnych notatek na temat TwitterRuntimeException w javadocs.

+0

Hiii ,,,, Czy znalazłeś rozwiązanie do tego? @ Michael D. –

+0

znalazł jakieś rozwiązanie? –

Odpowiedz

1

Dla mnie rozwiązanie było następujące:

  • przejdź do twitter app
  • Wybierz zakładkę Ustawienia
  • Pod typem aplikacji - Access - Wybierz ostatnią opcję Read, Write i dostęp bezpośredni wiadomości

Jeśli to nie rozwiąże problemu, spróbuj dodać adres URL połączenia zwrotnego. Możesz umieścić dowolny URL tutaj, będzie dobrze.

+1

Dokładnie to, czego potrzebowałem. Dodanie adresu URL wywołania zwrotnego było moim brakującym elementem –

Powiązane problemy