Here is the code which is working fine for other methods of twitter variable but only createfavorite is giving this error :
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import twitter4j.TwitterFactory;
import twitter4j.conf.ConfigurationBuilder;
public class TwitterAutoLikerPart1 {
private static Logger logger = LoggerFactory.getLogger(TwitterAutoLikerPart1.class);
public static void main(String[] args) throws Exception {
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey("E")
.setOAuthConsumerSecret("F")
.setOAuthAccessToken("G")
.setOAuthAccessTokenSecret("H");
TwitterFactory tf = new TwitterFactory(cb.build());
var twitter = tf.getInstance();
long tweetid=tweetid;
logger.info("Tweet id is "+tweetid);
logger.info(twitter.createFavorite(tweetid).getText());
/*
Whereas this is working
for(var x:twitter.getFavorites())
logger.info(x.toString());*/
}
}
Here's the logs for your referrence :
Exception in thread "main" 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.
{"request":"\/1.1\/favorites\/create.json","error":"Read-only application cannot POST."}
Relevant discussions can be found on the Internet at:
http://www.google.co.jp/search?q=038fb9e8 or
http://www.google.co.jp/search?q=480cbeca
TwitterException{exceptionCode=[038fb9e8-480cbeca], statusCode=401, message=null, code=-1, retryAfter=-1, rateLimitStatus=null, version=4.0.7}
at twitter4j.HttpClientImpl.handleRequest(HttpClientImpl.java:170)
at twitter4j.HttpClientBase.request(HttpClientBase.java:57)
at twitter4j.HttpClientBase.post(HttpClientBase.java:86)
at twitter4j.TwitterImpl.post(TwitterImpl.java:2102)
at twitter4j.TwitterImpl.createFavorite(TwitterImpl.java:1241)
at com.twiiterapi.mt.twitterapi.TwitterAutoLikerPart1.main(TwitterAutoLikerPart1.java:30)
Process finished with exit code 1
Kindly let me know where am I faultering.
Edit: So, the issue was app permission as pointed by the kind person Mr Andy Piper . I changed the permission and it started working like a charm .