超出限额 - 自定义Twitter应用程序

时间:2010-08-08 14:01:36

标签: java twitter twitter4j

我正在使用java Twitter应用程序(使用Twitter4J api)。我创建了应用程序,可以查看当前用户的时间表,用户的个人资料等。

然而,当使用该应用程序时,它似乎很快超过了在Twitter客户端上设置的每小时费率限制的150个请求(我知道开发人员可以在给定帐户上将此增加到350,但这对其他用户无法解决)。 / p>

当然这不影响所有客户,有关如何解决这个问题的想法吗?

有谁知道什么算作请求?例如,当我查看用户的配置文件时,我加载User对象(twitter4j)然后获取要放入JSON对象的屏幕名称,用户名,用户描述,用户状态等 - 这将是一次获取对象的调用或者它会包括所有user.get ... calls?

提前致谢

2 个答案:

答案 0 :(得分:4)

在与Twitter打交道时,您确实需要跟踪当前的请求数量。

然而,Twitter似乎没有丢弃304 Not Modified的计数(至少它不是我最后一次处理它),所以确保没有什么东西破坏你正常使用HTTP缓存,并且你的每小时实际要求会上升。

请注意,twitter在apache上的mod_gzip中存在错误,其中e-tag在更改时出现格式错误,以反映内容编码与非gzipped实体的内容编码不同(这是正确的事情) do,实现中只有一个错误)。因此,接受来自Twitter的gzip压缩内容意味着它永远不会发送304,这会增加您的请求数量,并且在许多情况下会破坏使用gzip的效率提升。

因此,如果您接受gzip(您的网站库可能默认情况下这样做,请看看您可以使用像Fiddler这样的工具看到的内容,我是一个只有一点Java知识的.NET人员,在该级别回答关于twitter如何处理HTTP所以我不知道Java Web库的细节),尝试关闭它,看看它是否改进了。

答案 1 :(得分:1)

几乎所有来自Twitter服务器的读取(即调用HTTP GET的任何类型)都算作请求。获取用户时间表,转发,直接消息,获取用户数据都被视为每个请求1个。几乎唯一一个从服务器读取而不计入API限制的Twitter API调用是检查速率限制状态。

相关问题