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

twitter4j搜索具有特定帐户创建日期的用户,twitter,twitter4j,Twitter,Twitter4j,我想在twitter上搜索特定账户创建日期的所有用户。那么Twitter api允许这样做吗?如果是,我如何使用twitter4j做到这一点呢?我不确定这是否可行。但是,您可以使用以下内容 例如,假设您正在搜索在2010-03-05(yyyy-MM-dd)中创建的用户 您可以创建一个如下所示的查询,方法是提供自开始日期点和截止日期点,如自开始日期前一天和截止日期后一天。因为没有明确的字段来设置确切的日期,所以我提出了这个想法。然后,应该使用分页机制调用SearchUsers()方法。您可以在本文

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

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

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

您可以创建一个如下所示的查询,方法是提供自开始日期点和截止日期点,如自开始日期前一天和截止日期后一天。因为没有明确的字段来设置确切的日期,所以我提出了这个想法。然后,应该使用分页机制调用SearchUsers()方法。您可以在本文中探索如何实现分页,我不记得它是如何实现的,但是您可以很容易地在Internet上找到一个示例。请尝试以下代码,我希望它能起作用:

 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
        }
试试看
{
查询=新查询();
查询设置自(“2010-03-04”);
查询:截至(“2010-03-06”);
ResponseList userList=twitterObj.searchUsers(query.toString(),-1);
for(用户userItem:userList)
{
//然后在这里,您可以通过使用userItem对象来做任何您想做的事情
}
}
捕获(TwitterException ex)
{
//这里有必要的错误处理机制吗
}
public void tweetSearch(字符串queryRequest)抛出IOException、TwitterException{
//创建配置生成器并设置密钥、令牌等
ConfigurationBuilder cb=新的ConfigurationBuilder();
cb.setDebugEnabled(true);
cb.setOAuthConsumerKey(“xxxxx”);
//键入您从twitter提供的使用者密钥和使用者密钥
//并将访问令牌访问秘密令牌保留为空
cb.SetOAuthConsumerCret(“xxxx”);
cb.setOAuthAccessToken(“xxxx”);
cb.setOAuthAccessTokenSecret(“xxxx”);
//创建Twitter实例
Twitter=newtwitterfactory(cb.build()).getInstance();
//创建文件编写器和缓冲区编写器
FileWriter fstream=newFileWriter(“Twitterstream.txt”,true);
BufferedWriter out=新的BufferedWriter(fstream);
//创建查询对象并设置搜索字符串
查询=新查询(“”);
//如你所愿更改日期。。。
查询。设置原因(“2014-06-12”);
查询:截止日期(“2014-06-14”);
setQuery(queryRequest);
//获取查询结果
QueryResult qr=Twitter.search(查询);
//获取推文并写入文件
while(qr.hasNext()){
qr.nextQuery();
List tweets=qr.getTweets();
对于(状态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(“生成的Twitter流”);
}

这不起作用。我想searchUsers只接受用户名或部分用户名作为参数。是的,我说过我对此不确定。这一结果也是意料之中的。不管怎样,别介意我的建议:)没问题,兄弟!无论如何,谢谢你的回答。:)
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");

}