Twitter4j获得任何用户的追随者和追随者

Twitter4j获得任何用户的追随者和追随者,twitter,twitter4j,twitter-streaming-api,Twitter,Twitter4j,Twitter Streaming Api,作为我大学最后一年项目的一部分,我正在使用图熵分析Twitter数据。简要概述目的: 我想收集某个地区(伦敦)的所有推文,其中包含关键词“感冒”、“流感”等。这部分是使用流式API完成的 然后我想访问每个用户(在上一节中收集的关于生病的推特)的关注者和关注者列表,以便能够构建一个图表进行进一步分析。我被困在这里了 我假设对于第二部分,我应该使用搜索API,但即使对于单个用户,我也会不断得到错误88 以下是我在第一部分中使用的代码: final TwitterStream twitte

作为我大学最后一年项目的一部分,我正在使用图熵分析Twitter数据。简要概述目的:

  • 我想收集某个地区(伦敦)的所有推文,其中包含关键词“感冒”、“流感”等。这部分是使用流式API完成的
  • 然后我想访问每个用户(在上一节中收集的关于生病的推特)的关注者和关注者列表,以便能够构建一个图表进行进一步分析。我被困在这里了
我假设对于第二部分,我应该使用搜索API,但即使对于单个用户,我也会不断得到错误88

以下是我在第一部分中使用的代码:

    final TwitterStream twitterStream = new TwitterStreamFactory(cb.build())
            .getInstance();
    StatusListener listener = new StatusListener() {
    public void onStatus(Status status) {
            User user = status.getUser();

            long userid = user.getId();

            String username = status.getUser().getScreenName();

            String content = status.getText();

            GeoLocation geolocation = status.getGeoLocation();

            Date date = status.getCreatedAt();

            if (filterText(content)) {
                System.out.println(username+"\t"+userid);
                System.out.println(content);
                System.out.println(geolocation);
                System.out.println(date);
                try {
                    getConnections(userid);
                } catch (TwitterException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }

        //OTHER LISTENER METHODS
    };

    twitterStream.addListener(listener);

    // London
    double lat3 = 51.23;
    double lat4 = 51.72;
    double lon3 = -0.56;
    double lon4 = 0.25;

    double[][] bb = { { lon3, lat3 }, { lon4, lat4 } };

    FilterQuery fq = new FilterQuery();
    fq.locations(bb);

    twitterStream.filter(fq);

    private static boolean filterText(String tweet) {
    return tweet.contains("flu")
            || tweet.contains("cold")
            || tweet.contains("cough")
            || tweet.contains("virus");

}
这就是我试图完成第二部分的内容:

    private static void getConnections(long id) throws TwitterException {
    Twitter twitter = new TwitterFactory().getInstance();

    long lCursor = -1;
    IDs friendsIDs = twitter.getFriendsIDs(id, lCursor);
    System.out.println(twitter.showUser(id).getName());
    System.out.println("==========================");
    do
    {
      for (long i : friendsIDs.getIDs())
       {
           System.out.println("follower ID #" + i);
           System.out.println(twitter.showUser(i).getName());
       }
    }while(friendsIDs.hasNext());
}
有什么建议吗?

当你收到建议时,Twitter会告诉你你的费率受到限制:

当前速率限制窗口已达到此资源的请求限制

搜索呼叫在15分钟内限制为180或450次呼叫。您可以看到,这详细解释了速率限制

至于如何绕过它,您可能必须限制对API的搜索调用。Twitter4J提供了检查当前限制/耗竭的方法,这可能会有所帮助-请参阅。

当您收到时,Twitter会告诉您您,您受到了费率限制:

当前速率限制窗口已达到此资源的请求限制

搜索呼叫在15分钟内限制为180或450次呼叫。您可以看到,这详细解释了速率限制

至于如何绕过它,您可能必须限制对API的搜索调用。Twitter4J提供了检查当前限制/耗竭的方法,这可能会有所帮助-请参阅。

当您收到时,Twitter会告诉您您,您受到了费率限制:

当前速率限制窗口已达到此资源的请求限制

搜索呼叫在15分钟内限制为180或450次呼叫。您可以看到,这详细解释了速率限制

至于如何绕过它,您可能必须限制对API的搜索调用。Twitter4J提供了检查当前限制/耗竭的方法,这可能会有所帮助-请参阅。

当您收到时,Twitter会告诉您您,您受到了费率限制:

当前速率限制窗口已达到此资源的请求限制

搜索呼叫在15分钟内限制为180或450次呼叫。您可以看到,这详细解释了速率限制

至于如何绕过它,您可能必须限制对API的搜索调用。Twitter4J提供了检查电流限制/耗尽的方法,这可能会有所帮助-请参阅