I am able to login to twitter using twitter4j and get information about the logged in user but i am not able to post tweet from my application. I am using java web application to post tweet. see the code below that i use.
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!");
}
i get the follwing exception:
TwitterException{exceptionCode=[fa54b184-3bf2623f], statusCode=401, retryAfter=0, rateLimitStatus=null, version=2.1.5-SNAPSHOT(build: d372a51b9b419cbd73d416474f4a855f3e889507)}
Please help.
Go to your already created application (https://dev.twitter.com)
Check your application settings (> Application Type)
'Application Type' need to be one of Read, Write and Access direct messages. If not you can easily make an update.
(I tested your code in processing environment and it is working)
First of all , regenerate your acces token/secret and consumer key/secret. Then try this.
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);
}
Statuscode 401 means you're not authorized
Check if your credentials are valid. If they are, maybe your application has not been validated by the user. See the examples on twitter4j site (point 7)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With