1

我正在使用 twitter4j 协调收听 twitter 流,没有任何输入关键字,因为我知道 twitter api 只提供最近 7 天的推文。我的代码运行起来很有趣,我遇到了网络问题,我无法获得 2 天前的流。我需要获取 22.04.2018 和 23.04.2018 的推文。我需要使用 until 参数来获取这些推文,但是在没有任何输入查询的情况下,我看不到使用 until 参数的任何示例。以下是我在给定坐标中侦听流时的代码语句,如何添加直到参数以获取过去 2 天的流。

        double latitude1 = 36.000000;
        double longitude1 = 26.000000;
        double latitude2 = 42.000000;
        double longitude2 = 45.000000;

        double[][] latlong = {{longitude1, latitude1}, {longitude2, latitude2}};

        twitterStream.addListener(listener);
        FilterQuery fq = new FilterQuery(); 
        fq.locations(latlong);

        twitterStream.filter(fq);

所以问题是我如何使用 FilterQuery 直到,

我尝试了如下方法;

        MyConnectionBuilder myConnection = new MyConnectionBuilder();

        Twitter twitter = new 
        TwitterFactory(myConnection.configuration.build()).getInstance();

        double latitude1 = 42.000000;
        double longitude1 = 45.000000;


        Query query = new Query(); 

        GeoLocation obj = new GeoLocation(latitude1, longitude1);
        query.setGeoCode(obj, 2000, Unit.valueOf("km"));

        query.setSince("20180421");
        query.setUntil("20180422");
        query.setLang("tr");

        QueryResult result = twitter.search(query);

        for (Status status : result.getTweets()) {
            System.out.println("@" + status.getUser().getScreenName() + ":" + status.getText());
        }

但是结果查询没有任何结果,这些代码语句有什么问题?

4

1 回答 1

1

Twitter4J类的官方 JavaDocQuery告诉我们setSince

如果指定,则返回自给定日期以来的推文。

日期格式应为 YYYY-MM-DD

因此必须以字符串格式设置日期YYYY-MM-DD,例如“2018-04-21”。请注意,此处使用了您在原始代码片段中未提供的破折号。

类似地,您必须将此日期模式样式应用于setUntil

如果指定,则返回在给定日期之前生成的推文。

日期格式应为 YYYY-MM-DD

希望这可以帮助。

于 2018-05-09T21:03:06.900 回答