我在使用Twitter4J时收到错误消息:
java.lang.IllegalStateException: Access token already available.
twitter4j.auth.OAuthAuthorization.getOAuthRequestToken(OAuthAuthorization.java:112)
twitter4j.auth.OAuthAuthorization.getOAuthRequestToken(OAuthAuthorization.java:104)
twitter4j.TwitterBaseImpl.getOAuthRequestToken(TwitterBaseImpl.java:276)
twitter4j.TwitterBaseImpl.getOAuthRequestToken(TwitterBaseImpl.java:269)
[...]
调用方法Twitter.getOAuthRequestToken()
时抛出此异常。我想获取授权URL来验证下一个用户。
我怎么可能解决这个问题?我只将OAuthConsumerKey,OAuthConsumerSecret,OAuthAccessToken和OAuthAccessTokenSecret放到Twitter4J属性中。但是,如何接收授权URL以验证新用户?
谢谢和问候,
马丁
答案 0 :(得分:9)
对不起。
我正在设置由配置构建器硬编码的访问令牌。
删除它,现在有效。
答案 1 :(得分:4)
您需要创建一个新的twitter实例,并在请求新的访问令牌之前将其null为accessToken和accessTokenSecret字段。
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey(TWITTER_CONSUMER_KEY)
.setOAuthConsumerSecret(TWITTER_CONSUMER_SECRET)
.setOAuthAccessToken(null)
.setOAuthAccessTokenSecret(null);
TwitterFactory tf = new TwitterFactory(cb.build());
Twitter twitter = tf.getInstance();