我是 Twitter4j 的新手,我正在尝试以 JSON 格式从 twitter 获取推文 形式 但我遇到了异常(exception)。 我运行了这段代码
public static void main(String[] args) throws IOException {
BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
try {
//Establish Connection to Twitter App
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setJSONStoreEnabled(true);
twitter= new TwitterFactory(cb.build()).getSingleton();
twitter.setOAuthConsumer(consumerKeyStr, consumerSecretStr);
AccessToken accessToken = new AccessToken(accessTokenStr,
accessTokenSecretStr);
twitter.setOAuthAccessToken(accessToken);
//////
ArrayList<String> JsonTweets =new ArrayList<String>();
QueryResult result = twitter.search(new Query("abc"));
List<Status> resulted_tweets = result.getTweets();
for(Status tweet :resulted_tweets)
{
String json = TwitterObjectFactory.getRawJSON(tweet);
JsonTweets.add(json);
}
System.out.println((Arrays.toString( JsonTweets.toArray())));
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
我得到的只是
java.lang.IllegalStateException: Apparently jsonStoreEnabled is not set to true.
at twitter4j.TwitterObjectFactory.getRawJSON(TwitterObjectFactory.java:32)
at JavaTweet.main(JavaTweet.java:86)
虽然我确实在第 6 行将其设置为 true。 我计划使用 jsonString 将其添加到 json 对象,并在结果中获得的推文中查找一些属性
最佳答案
您没有配置正确的实例。您将配置传递给 TwitterService 类的新实例,然后从该实例获取单例......这是您从未配置过的另一个实例。
twitter= new TwitterFactory(cb.build()).getSingleton();
等于
twitterFactory= new TwitterFactory(cb.build());
twitter= twitterFactory.getSingleton();
看到了吗?
<小时/>已解决:
twitterFactory = new TwitterFactory(cb.build())
twitter = twitterFactory.getInstance();
<小时/>
关于java - 为什么我收到错误显然 jsonStoreEnabled 未设置为 true ,而我确实将其设置为 true ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45420187/