【问题标题】:Twitter4j how can i get any twitter handle tweets from it's 1'st tweetsTwitter4j 我如何从它的第一条推文中获取任何推特句柄推文
【发布时间】:2016-08-15 06:34:32
【问题描述】:

我正在使用此代码我收到错误 TwitterException 429 试图感染推文。 我想从一开始就感染 twitter 帐户的整个推文。 如何解决推特限速问题。

    int limitRateCounter=0;
int countOfTweets=0; int numberOfTweets = 3500; long lastID = Long.MAX_VALUE; ArrayList<Status> status = new ArrayList<Status>();while (status.size () < numberOfTweets) { try {.out.print("\nlimit counter = "+limitRateCounter);.out.print("\t tweetsCounter = "+countOfTweets);
List<Status>  listOfStatus=
twitter.getUserTimeline(tweeterHandle,pg);
/* making twitter request */
countOfTweets=countOfTweets+listOfStatus.size();
status.addAll(listOfStatus);
limitRateCounter++; 
// println("Gathered " + tweets.size() + " tweets");
for (Status t: status) 
if(t.getId() < lastID) lastID = t.getId();
}
catch (TwitterException te) {
System.out.println("Couldn't connect: " + te);
//twitter=getTwitterDetails2();
break;
}; 
pg.setMaxId(lastID-1); /* add pagging max id */
} 

120 次请求后 .getUserTimeline(tweeterHandle,pg);方法不获取 一段时间后的新推文会出现异常。

【问题讨论】:

    标签: java twitter twitter4j


    【解决方案1】:

    Twitter4j 使用 Twitter API 来访问 Twitter 数据。此 API 对调用次数有限制,如下所示:

    您现在似乎正面临这个问题。基本上,您的代码需要在再次调用之前等待,直到您再次处于 API 速率限制之内。考虑到速率限制是文档指定的每个“访问令牌”,因此如果您提供更多访问令牌,您可以增加代码可以进行的调用次数,但最终您将拥有一个(更大的)限制。

    【讨论】:

    • 感谢 BitExodus,您知道任何其他 java API,它给了我一个 tweitter 历史。
    • 我正在使用 2 个令牌来增加通话次数,但第二个令牌没有获取任何新推文。
    • 您面临的问题不在 java 库中,而是在 Twitter 提供的 API 中,该 API 具有速率限制(我的意思是 Twitter 服务器)。 java 库只是让您调用 Twitter API 的工具,任何其他库都将面临同样的问题。达到限制后,您可以尝试等待 15 分钟再拨打另一个电话。
    【解决方案2】:

    在 twitter (10) 上创建多个帐户,然后将访问令牌放入数组中

    【讨论】:

      猜你喜欢
      • 2019-05-07
      • 1970-01-01
      • 2018-07-14
      • 1970-01-01
      • 2012-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多