Twitter4j身份验证凭据丢失 [英] Twitter4j authentication credentials are missing
问题描述
我想提出与Twitter4j鸣叫在我的Android应用程序。这是我的code:
I would like to make a tweet with Twitter4j in my Android app. Here is my code:
//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 的细节。但是你可以看到我用生成器来设置我的钥匙。有人可以帮我解决这个问题吗?谢谢。
I always get this error message from Twitter4j: java.lang.IllegalStateException: Authentication credentials are missing. See http://twitter4j.org/en/configuration.html for the detail. But as you can see I'm using builder to set my key. Can someone help me to fix it please? thanks.
推荐答案
问题在于以下行。
TwitterFactory tf = new TwitterFactory(cb.build());
Twitter twitter = new TwitterFactory().getInstance();
正在通过配置一个 TwitterFactory
实例,并使用另一个 TwitterFactory
实例来获得微博
实例。
You are passing the configuration to one TwitterFactory
instance and using another TwitterFactory
instance to get the Twitter
instance.
因此,如果您听到
java.lang.IllegalStateException:身份验证凭据丢失
Hence, You are getting
java.lang.IllegalStateException: Authentication credentials are missing
我建议你修改code如下:
I suggest you to modify your code as follows:
//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的实例。它将工作。
And use this twitter instance. It will work.
这篇关于Twitter4j身份验证凭据丢失的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!