【问题标题】:How to change keywords on twitter stream api using twitter4j?如何使用 twitter4j 更改 twitter 流 api 上的关键字?
【发布时间】:2014-12-22 09:37:09
【问题描述】:

我正在使用 twitter4j 连接到 Stream API。

我从这篇帖子中了解到,Change Twitter stream filter keywords without re-opening stream,在连接打开时无法更改关键字。我必须断开连接并更改过滤谓词并重新连接。

我想知道是否有任何代码示例可以让我断开连接、更改关键字并重新连接?

目前,我尝试在 onStatus() 下的 StatusListener 中执行此操作,经过 X 时间后,它会将关键字更改为“juice”。但是我没有办法关闭连接并重新连接到 Stream API。

if (diff>=timeLapse) {
   StatusListener listener = createStatusListener();
   track = "juice";
   twitterStream = new TwitterStreamFactory().getInstance();
   twitterStream.addListener(listener);
   FilterQuery fq = new FilterQuery();
   fq.track(new String[] {track});
   startTime=System.currentTimeMillis();
   twitterStream.filter(fq);
}

【问题讨论】:

    标签: twitter4j twitter-streaming-api


    【解决方案1】:

    您需要先 cleanUp() 流,然后使用 filter(FilterQuery) 方法打开一个新流以更改跟踪条件。

    【讨论】:

      【解决方案2】:

      您只需再次调用Filter(query) 即可完成此操作,无需调用cleanUp(),因为调用filter(query) 会为您完成此操作。我是这样做的,无需停止/重新启动流!

      private TwitterStream twitterStream;
      
      private void filterTwitterStream() {
      
          if (conditionToStopStreaming) {
              if (null != twitterStream) {
                  twitterStream.shutdown();
                  twitterStream = null;
              }
          } else {
              if (twitterStream == null) {
                  twitterStream = new TwitterStreamFactory(getConfiguration()).getInstance();
                  twitterStream.addListener(getListener());
              }
      
              FilterQuery qry = new FilterQuery();
      
              String[] keywords = {......}
              qry.track(keywords);
      
              twitterStream.filter(qry);
          }
      }
      

      getConfiguration() 返回我的 Configuration 对象,getListener() 返回我定义的 StatusListener() 对象

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-28
        • 1970-01-01
        • 1970-01-01
        • 2011-11-15
        • 2019-01-15
        • 1970-01-01
        相关资源
        最近更新 更多