2012-04-04 5 views
5

Ich kann mich mit twitter4j bei twitter anmelden und Informationen über den angemeldeten Benutzer erhalten, aber ich kann keine Tweets aus meiner Anwendung posten. Ich benutze Java-Webanwendung, um Tweet zu posten. Siehe den Code, den ich verwende.wie man Twitter in java twittern?

String ACCESS_TOKEN = "ttttttttt"; 
    String ACCESS_TOKEN_SECRET = "gggggggggggggg"; 
    String CONSUMER_KEY = "gggggggggggg"; 
    String CONSUMER_SECRET = "hhhhhhhhhhhhh"; 
    String tweet = ""; 
    if (request.getParameter("tweet") != null) { 
     tweet = request.getParameter("tweet"); 
    } 
    AccessToken accessToken = new AccessToken(ACCESS_TOKEN, ACCESS_TOKEN_SECRET); 
    OAuthAuthorization authorization = new OAuthAuthorization(ConfigurationContext.getInstance(), CONSUMER_KEY, CONSUMER_SECRET, accessToken); 
    Twitter twitter = new TwitterFactory().getInstance(authorization); 
    try { 
     //twitter.updateStatus("Hello World!"); 
     twitter.updateStatus(tweet); 
    } catch (TwitterException e) { 
     System.err.println("Error occurred while updating the status!"); 
    } 

bekomme ich die follwing Ausnahme:

TwitterException {Exception = [fa54b184-3bf2623f], status = 401, retryAfter = 0, ratelimitstatus = null, Version = 2.1.5-SNAPSHOT (Build: d372a51b9b419cbd73d416474f4a855f3e889507)}

Bitte helfen.

Antwort

7
  1. Gehen Sie zu Ihrem bereits erstellte Anwendung (https://dev.twitter.com)

  2. Anwendungseinstellungen prüfen (> Anwendungsart)

  3. 'Anwendungsart' müssen eine der direkten Nachrichten Lesen, Schreiben und Zugriff sein. Wenn nicht, können Sie leicht ein Update machen.

(ich Code in Verarbeitungsumgebung getestet und es funktioniert)

1

dem Statuscode 401 bedeutet, dass Sie not authorized

prüfen sind, ob Ihre Anmeldeinformationen gültig sind. Wenn dies der Fall ist, wurde Ihre Anwendung möglicherweise nicht vom Benutzer validiert. Siehe die Beispiele auf twitter4j site (Punkt 7)

4

Zunächst einmal, regenerieren Sie Ihre Zugriffstoken/Geheimnis und Verbraucherschlüssel/Geheimnis. Dann versuchen Sie es.

String consumerKey = "yourconsumerKey "; 
     String consumerSecret = "yourconsumerSecret"; 
     String accessToken = "yourAccessToken"; 
     String accessSecret = "yourAccessSecret"; 

     ConfigurationBuilder cb = new ConfigurationBuilder(); 
     cb.setDebugEnabled(true) 
      .setOAuthConsumerKey(consumerKey) 
      .setOAuthConsumerSecret(consumerSecret) 
      .setOAuthAccessToken(accessToken) 
      .setOAuthAccessTokenSecret(accessSecret); 

     try 
     { 
      TwitterFactory factory = new TwitterFactory(cb.build()); 
      Twitter twitter = factory.getInstance(); 

      System.out.println(twitter.getScreenName()); 
      Status status = twitter.updateStatus(latestStatus); 
      System.out.println("Successfully updated the status to [" + status.getText() + "]."); 
      }catch (TwitterException te) { 
       te.printStackTrace(); 
       System.exit(-1); 
      } 
Verwandte Themen