【发布时间】:2014-01-05 10:52:57
【问题描述】:
我想在我的 Android 应用中使用 Twitter4j 发布推文。这是我的代码:
//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。但正如你所看到的,我正在使用 builder 来设置我的密钥。有人可以帮我解决它吗?谢谢。
【问题讨论】:
-
你从不使用 TwitterFactory 实例 'tf' ...
-
是的,但我不认为这是这个问题的重点。
-
嗯,有点像,因为你说'如你所见,我正在使用构建器来设置我的密钥',但是使用构建器的唯一对象是'tf',它永远不会用过的。因此,在 builder 上设置凭据的效果为零。您需要使用以下命令创建 'twitter' 对象:
Twitter twitter = tf.getInstance();并放弃对twitter.setOAuthConsumer的调用
标签: java android api twitter twitter4j