如何通过Twitter4J查询中的since / until参数过滤推文?

时间:2018-04-24 07:00:56

标签: twitter twitter4j tweetstream

我使用twitter4j通过坐标来监听Twitter流,没有任何输入关键字,因为我知道twitter api只提供过去7天的推文。我的代码工作很有趣,我有一个网络问题,我无法得到2天前的流。我需要获得22.04.2018和23.04.2018的推文。我需要使用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 with,

我试过如下的事情;

        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());
        }

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

1 个答案:

答案 0 :(得分:1)

Twitter4J Query课程的official JavaDoc告诉我们setSince

  

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

     

日期格式应为YYYY-MM-DD

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

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

  

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

     

日期格式应为YYYY-MM-DD

希望这有帮助。