twitter4j 3.0.5搜索问题

时间:2013-10-12 19:17:22

标签: java desktop-application twitter4j

嘿所有我正在开发一个java桌面应用程序。我必须使用twitter4j 3.0.5通过主题标签搜索推文。我对身份验证和搜索推文没有任何问题,但是存在一些问题: 我用topsy.com测试了我的搜索结果,我看到我收到的推文很少或没有推文。像#jobbingfest有大约500条推文,但我发现它是空的...... 最有趣的事情:Twitter.search(查询)文档说

Returns tweets that match a specified query. This method calls http://search.twitter.com/search.json

api会像这样返回一个json

{"errors": [{"message": "The Twitter REST API v1 is no longer active. Please migrate to API v1.1. https://dev.twitter.com/docs/api/1.1/overview.", "code": 68}]}

我有点困惑......为什么我能够获得推文,如果该资源不再可用?

我正在努力理解这个问题,但没有办法......我不得不在这里寻求帮助:p。

非常感谢! Licio。

PS。抱歉,也许我的英语不太好......

PPS。检索超过100条我用来做这件事的推文是对的吗?

List<MioStatus> listaStatus = null;
try {
    listaStatus = new ArrayList<MioStatus>();
    result = twitter.search(query);
    while(result.nextQuery() != null){
        for (Status status : result.getTweets()) {
            if(status.isRetweet()){
                listaStatus.add(new MioStatus(status.getId(), true, "RT " + status.getRetweetedStatus().getText(), status.getUser(), status.getGeoLocation(), status.getRetweetCount(), status.getCreatedAt()));
            }else{
                listaStatus.add(new MioStatus(status.getId(), true, status.getText(), status.getUser(), status.getGeoLocation(), status.getRetweetCount(), status.getCreatedAt()));
            }
         }
         result = twitter.search(result.nextQuery());
    }

2 个答案:

答案 0 :(得分:0)

Twitter REST API v1不再有效。你无法使用它来获取tweeter的数据。 From the site

  

现在不推荐使用REST API的第1版,它将停止运行   在接下来的几个月里。立即迁移到1.1版。

然而,API 1.1 supports JSON only,删除了XML,Atom和RSS支持。

再次在您的代码中,您在以下碎片中调用nextQuery()两次(阅读评论):

    while(result.nextQuery() != null){   // you are calling nextQuery() but 
                                   //you should call hasNext() boolean check
        for (Status status : result.getTweets()) {
            // do whatever you were doing

         }
         result = twitter.search(result.nextQuery()); 
                    // you are calling nextQuery() here, so no need to call 
                  //in while conditional check
       } // while ends here

答案 1 :(得分:0)

好吧我得到的东西......只是改变了推特的分配

Twitter twitter = TwitterFactory.getSingleton();

不要问我为什么,我正在使用mvc并且应该在地图中保存一个实例,但是...... 现在的问题是......“旧推文在哪里?”设置setSince()是没用的。 Twitter限制?