Twitter的整合:消费者密钥/秘密对已设置(Twitter integration:consum

2019-06-26 08:04发布

想我与Twitter使用Web应用程序集成twitter4j库。
我已经注册了我的Twitter网站的应用程序,并得到了Consumer keyConsumer secret值。
没什么特别的,标准OAuth一步。

码:

public class TwitterService {
    private final String CONSUMER_KEY = "xxx";
    private final String CONSUMER_SECRET = "yyy";

    public String fav() {
        Twitter twitter = TwitterFactory.getSingleton();
        twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
...

例外:

Caused by: java.lang.IllegalStateException: consumer key/secret pair already set.

我有没有更多的配置keysecret ,任何.properties或其他文件。

编辑:

注释线twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET); 导致异常:

java.lang.IllegalStateException: OAuth consumer key/secret combination not supplied

Answer 1:

纵观代码和文档都,它看起来像你的实例化的方法, Twitter ,不推荐实例。 如果你想以编程电源配置(而不是使用属性),它看起来像你需要提供一个ConfigurationTwitterFactory

...
ConfigurationBuilder builder = new ConfigurationBuilder();
builder.setOAuthConsumerKey(CONSUMER_KEY);
builder.setOAuthConsumerSecret(CONSUMER_SECRET);
Configuration configuration = builder.build();
TwitterFactory factory = new TwitterFactory(configuration);
Twitter twitter = factory.getInstance();
...

通过尚未与配置默认提供给用一个工厂提供的单Authorization由备份实施PropertyConfiguration配置。 如果没有属性文件,它看起来像它不应该实例化一个OAuthAuthorization权威性,这是什么原因,你所看到的例外。 但PropertyConfiguration做搜索整个CLASSPATH一个合适的属性文件,所以也许你忽略了一个。 你可以尝试获取登录后的密钥和密码正确Twitter实例来看看他们设置为:

System.out.println("key:" + twitter.getConfiguration().getOAuthConsumerKey());
System.out.println("secret: " + twitter.getConfiguration().getOAuthConsumerSecret());


Answer 2:

我的直觉是你设置的私人最终变量,然后twitter.setOAuthConsumer()正试图这样做。 您只需要一个或另一个。 您是否尝试注释掉twitter.setOAuthConsumer()行?

该文档说明做这些设置的“首选”的方式。



文章来源: Twitter integration:consumer key/secret pair already set