我正在尝试使用twitter4j api从twitter api检索数据。经过一段时间的检索数据后,出现以下错误:
Exception in thread "main" 403:The request is understood, but it has been refused. An accompanying error message will explain why. This code is used when requests are being denied due to update limits (https://support.twitter.com/articles/15364-about-twitter-limits-update-api-dm-and-following).
message - User has been suspended.
code - 63
我得出的结论是,以上错误得出了Twitter API支持的调用限制。如何创建间隔以便等待,直到可能从Twitter提取数据?
例如,我的代码如下:
Long l = Long.parseLong(list.get(index));
TwitterResponse response = twitter.getFollowersIDs(l);
RateLimitStatus status = response.getRateLimitStatus();
if (status.getRemaining() < 2) {
try {
System.out.println("status.getSecondsUntilReset()");
Thread.sleep(status.getSecondsUntilReset());
} catch (InterruptedException e) {
System.out.println(e);
}
}
User user = twitter.showUser((l));
//statuses = twitter.getUserTimeline(l);
JSONObject features = new JSONObject();
features.put("_id", l);
score = kloutScore(l);
我的新代码包含一个if语句,该语句检查status.getRemaining()是否接近零,然后等待15分钟,这实际上是持续时间。但是我遇到了TwitterResponse
response = twitter.getFollowerIDs(l);的问题。我收到消息:
Exception in thread "main" 429:Returned in API v1.1 when a request cannot be served due to the application's rate limit having been exhausted for the resource. See Rate Limiting in API v1.1.(https://dev.twitter.com/docs/rate-limiting/1.1)
message - Rate limit exceeded
您可以在每次回复时致电getRateLimitStatus()
以获得一个RateLimitStatus
。RateLimitStats.getRemaining()
会告诉您该调用族可用的API请求的剩余数量,如果该数量达到零,则可以调用RateLimitStatus.getSecondsUntilReset()
,并至少等待那么长时间再进行其他调用。
有关Twitter速率限制的信息可以在以下位置找到:https : //dev.twitter.com/docs/rate-
limiting/1.1
这是一个基本示例:
do {
TwitterResponse response = twitter.getFollowersIDs(userId, cursor);
RateLimitStatus status = response.getRateLimitStatus();
if(status.getRemaining() == 0) {
try {
Thread.sleep(status.getSecondsUntilReset() * 1000);
}
catch(InterruptedException e) {
// ...
}
}
} while(cursor > 0);
在您现在提供的代码中,您要对Twitter进行2次调用,showUser
并且getUserTimeLine
。您需要这两个电话后检查速率限制状态(包括User
和ResponseList
扩展TwitterResponse
,并有速度限制信息)。这些调用属于2个不同的资源族(users
和statuses
),每个速率限制窗口(15分钟)都允许调用这两种方法180次。
我知道这个问题已经贴在这里了,但我似乎无法修复它。 问题是Drupal需要的内存比php允许的要多。 运行phpinfo()我发现配置文件路径是: /Applications/MAMP/bin/php/php5.4.10/conf/php.ini,我调整了该文件。(memory_limit=1028) 我还调整了:主php。ini(MAMP/conf/php5.4.10)drupal设置。php(
我已经通读了我能在错误信息上找到的每一篇文章: 你没有访问/在这个服务器上的权限。 我甚至不知道应该包括哪些信息。绝对是个新手。这是我所知道的。我正在运行Apache/2.4。16台Mac OSX优胜美地。一度http://localhost返回“它工作!”。然后我转到/etc/apache2,打开文件httpd。conf并从以下行中删除#(使用MacRabbit Espresso): LoadM
我需要在我的主机上运行composer update,因此我使用ssh登录,并尝试在/www文件夹中运行以下命令,我在该文件夹中安装了Laravel和composer: 我得到这个错误: 我正在与我的主机提供商联系,他们告诉我运行命令: 我运行了这个命令,但得到:“无法打开文件:composer” 怎么办?这里的解决方案是什么?
我有一个java Spring应用程序在AWS C4上运行。大(4 Gb内存)与Apache Tomcat 8.我得到java.lang.OutOfMemoryError GCOverhead限制超过错误,同时在服务器启动期间实例化30000条记录的bean。 引起原因:org.springframework.beans.BeanInstantiation异常:未能实例化[java.lang.字符
tabledata期间出错。包含消息的列表: 未在中列出https://cloud.google.com/bigquery/troubleshooting-errors#errortable . 每次都会发生此错误。 我们可以正常地将此表导出到GCS中。结果看起来正常(没有非常大的行)。 我们设法在实际错误发生之前检索几个结果页。 这是什么意思?我们如何解决这个错误?
我试图用Jtextarea做一个聊天盒。它将在0处插入新的文本行,以便在textarea的顶部逐行添加文本。 我将用换行符分隔每一行,并在适当的位置换行,但我无法找到一种方法来限制一次可见的消息数量。因此,如果我设置了100个限制,我将如何使它不能超过100个可见的消息?我希望文本自动擦除最后一行并插入新的一行。 仅供参考,getFrame().getGameGui().getChat(0)用于检