Отсутствуют учетные данные аутентификации Twitter4j

Я хотел бы сделать твит с Twitter4j в своем приложении для Android. Вот мой код:

//TWITTER SHARE. @Click (R.id. img_btn_twitter) @Background public void twitterPostWall(){ try { //Twitter Conf. ConfigurationBuilder cb = new ConfigurationBuilder(); cb.setDebugEnabled(true) .setOAuthConsumerKey(CONSUMER_KEY) .setOAuthConsumerSecret(CONSUMER_SECRET) .setOAuthAccessToken(ACCESS_KEY) .setOAuthAccessTokenSecret(ACCESS_SECRET); TwitterFactory tf = new TwitterFactory(cb.build()); Twitter twitter = new TwitterFactory().getInstance(); twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET); try { RequestToken requestToken = twitter.getOAuthRequestToken(); Log.e("Request token: ", "" + requestToken.getToken()); Log.e("Request token secret: ", "" + requestToken.getTokenSecret()); AccessToken accessToken = null; } catch (IllegalStateException ie) { if (!twitter.getAuthorization().isEnabled()) { Log.e("OAuth consumer key/secret is not set.", ""); } } Status status = twitter.updateStatus(postLink); Log.e("Successfully updated the status to [", "" + status.getText() + "]."); } catch (TwitterException te) { Log.e("TWEET FAILED", ""); } } 

Я всегда получаю это сообщение об ошибке от Twitter4j: java.lang.IllegalStateException: отсутствуют учетные данные аутентификации. Подробнее см. Http://twitter4j.org/en/configuration.html . Но, как вы видите, я использую построитель для установки моего ключа. Может кто-нибудь помочь мне исправить это, пожалуйста? Благодарю.

Проблема заключается в следующих строках.

 TwitterFactory tf = new TwitterFactory(cb.build()); Twitter twitter = new TwitterFactory().getInstance(); 

Вы передаете конфигурацию одному экземпляру TwitterFactory и используете другой экземпляр TwitterFactory чтобы получить экземпляр Twitter .

Следовательно, вы получаете java.lang.IllegalStateException: Authentication credentials are missing

Я предлагаю вам изменить свой код следующим образом:

  //Twitter Conf. ConfigurationBuilder cb = new ConfigurationBuilder(); cb.setDebugEnabled(true) .setOAuthConsumerKey(CONSUMER_KEY) .setOAuthConsumerSecret(CONSUMER_SECRET) .setOAuthAccessToken(ACCESS_KEY) .setOAuthAccessTokenSecret(ACCESS_SECRET); TwitterFactory tf = new TwitterFactory(cb.build()); Twitter twitter = tf.getInstance(); 

И используйте этот экземпляр twitter. Это будет работать.