如何在Twitter4j中获取带有完整JSON的推文

10

我需要检索一组推文列表,包含很多信息(可以轻松从某些Tweet.getX()方法中检索),但不包括推文的整个JSON。

我无法弄清如何从QueryResult中获取推文的JSON。有人能帮帮我吗?


TwitterObjectFactory.jsonStoreEnabled 是如何使用的? - Thufir
2个回答

20
你可以通过在传递给TwitterFactory构造函数的ConfigurationBuilder对象上设置setJSONStoreEnabled(true)来获取你的推文的JSON数据。
以下是完整的示例:
public static void main(String[] args) throws TwitterException {
    ConfigurationBuilder cb = new ConfigurationBuilder();
    cb.setJSONStoreEnabled(true);

    Twitter twitter = new TwitterFactory(cb.build()).getInstance();
    Query query = new Query("lizardbill");
    QueryResult result = twitter.search(query);
    for (Tweet tweet : result.getTweets()) {
        System.out.println(tweet.getFromUser() + ":" + tweet.getText());
        String json = DataObjectFactory.getRawJSON(tweet);
        System.out.println(json);
    }
}

非常感谢,比尔!说“DataObjectFactory.getRawJSON(tweet)”会导致向Twitter API发送另一个查询,对吗?难道不能通过检索到的推文的某些属性来实现吗?谢谢,安德烈亚。 - andreaxi
@andreaxi 很遗憾,不好意思,我认为 JSON 字符串并未作为 Tweet 对象的一部分保存。 - Bill the Lizard
好的,我会找其他方法(也许获取JSON然后解析它以获取所需信息:因此只需要查询JSON,并进行一些解析工作)。谢谢,比尔。 - andreaxi
6
DataObjectFactory已被淘汰,你需要使用TwitterObjectFactory.jsonStoreEnabled - Lucas Cimon
如果我想使用流API而不是搜索API,该如何实现? - sareem
HAA。我知道了。我只是浪费了时间使用Jackson JSONGenerator编写JSON。 - Dylan_Larkin

0

我认为Bill已经回答了这个问题,但是那些仍然想知道如何使用TwitterObjectFactory的人,我相信应该像这样做:

ResponseList<Status> userTimeline = // init twitter instance

userTimeline.forEach(x -> {
        String json = TwitterObjectFactory.getRawJSON(x);
        System.out.println(json);
    });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接