Twitter4J搜索具有特定帐户创建日期的用户



我想在推特上搜索具有特定帐户创建日期的所有用户。那么Twitter api允许这样做吗?如果是,我如何使用 twitter4j 做到这一点?

我不确定这是否可能。但是,您可以使用以下内容。

例如,假设您正在搜索在 2010-03-05 (yyyy-MM-dd) 中创建的用户

您可以通过提供开始和结束

日期点来创建如下所示的查询,例如 1 天前到开始点和 1 天后到结束点。因为没有明确的字段来设置确切的日期,所以我想出了这个主意。然后,您应该使用分页机制调用 SearchUsers() 方法。你可以探索如何实现分页,我不记得是怎么回事了,但你可以在互联网上轻松找到一个示例。尝试以下代码,我希望它会起作用:

 try
        {
            Query query = new Query();
            query.setSince("2010-03-04");
            query.setUntil("2010-03-06");
            ResponseList<User> userList = twitterObj.searchUsers(query.toString(), -1);
            for (User userItem : userList)
            {
                // Then here you can do whatever you want by using userItem object
            }
        }
        catch (TwitterException ex)
        {
            // Do necessary error handling mechanism here
        }
public void tweetSearch(String queryRequest) throws IOException, TwitterException{
        // Create configuration builder and set key, token etc
        ConfigurationBuilder cb = new ConfigurationBuilder();
                cb.setDebugEnabled(true);
        cb.setOAuthConsumerKey("xxxxx"); 
// type your provided Consumer key and consumer secret key from twitter
//and leave access token access secret token as blank

cb.setOAuthConsumerSecret("xxxx");
    cb.setOAuthAccessToken("xxxx");
    cb.setOAuthAccessTokenSecret("xxxx");
    // Create Twitter instance
    Twitter Twitter = new TwitterFactory(cb.build()).getInstance();
    // Create file writer and buffer writer
    FileWriter fstream = new FileWriter("Twitterstream.txt",true);
    BufferedWriter out = new BufferedWriter(fstream);
    // Create Query object and set search string
    Query query = new Query("");
            //change the date as u wish...
            query.setSince("2014-06-12");
            query.setUntil("2014-06-14");
    query.setQuery(queryRequest);
    // Get query result
    QueryResult qr = Twitter.search(query);
    // Get tweets and write in the file
    while(qr.hasNext()){
        qr.nextQuery();
        List<Status> tweets = qr.getTweets();
        for (Status t: tweets){
                System.out.println(t.getId() + " - " + t.getCreatedAt() + ": " + t.getText());
            out.write("n"+t.getId()+",");
            out.write("t"+t.getText()+",");
            out.write("t"+t.getUser()+",");
        }
    }
            System.out.println("Generated Twitter Stream");
}

最新更新