ser*_*nni 11 twitter integration key twitter4j
尝试使用twitter4j lib 将我的webapp与Twitter集成.
我已经注册了我的Twitter网站的应用程序,并获得Consumer key
和Consumer 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);
...
Run Code Online (Sandbox Code Playgroud)
例外:
Caused by: java.lang.IllegalStateException: consumer key/secret pair already set.
Run Code Online (Sandbox Code Playgroud)
我没有更多配置key
和secret
,任何.properties
或其他文件.
编辑:
注释行twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
导致异常:
java.lang.IllegalStateException: OAuth consumer key/secret combination not supplied
Run Code Online (Sandbox Code Playgroud)
Ara*_*xia 30
查看代码和文档,看起来Twitter
不推荐使用实例化实例的方法.如果你想以编程电源配置(而不是使用属性),它看起来像你需要提供Configuration
的TwitterFactory
.
... 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
auth,这将导致您看到的异常.但是PropertyConfiguration
,搜索整个CLASSPATH
相应的属性文件,所以也许你忽略了一个.您可以在获取Twitter
实例后立即尝试记录密钥和密钥以查看它们的设置:
System.out.println("key:" + twitter.getConfiguration().getOAuthConsumerKey()); System.out.println("secret: " + twitter.getConfiguration().getOAuthConsumerSecret());