如何解决Twitter API缓存问题?

问题描述:

我正在构建一个Twitter应用程序,需要频繁地检查用户数据,但我在Twitter方面存在奇怪的缓存问题,而不是我的方面。如何解决Twitter API缓存问题?

请尝试以下用户:

在XML users/showhttp://twitter.com/users/show.xml?screen_name=technolocus

在JSON users/showhttp://twitter.com/users/show.json?screen_name=technolocus

正常的页面:http://twitter.com/technolocus

所有访问数据应返回相同的值这些方法, 对?检查他们每个人的statuses_count

XML:12548

JSON:12513

正常:12498

的通常方法(即刚刚访问个人资料非编程)担任了的12498.最正确的值。如果我发布或删除对此帐户的推文,它会立即在配置文件页面上更新,但XML和JSON方法仍会返回缓存数据。

此时,XML和JSON方法的值分别为12到18小时。

我第一次尝试从我的网站(托管在Dreamhost上)访问这些方法。我认为这是Dreamhost缓存响应。然后我试图直接从我的浏览器访问API。之后,我从机器的命令行执行了一个cURL。这不是dreamhost。我认为这可能是我的ISP(我认为他们使用NetApp或类似的东西)。然后我问了一个在印度另一个角落的朋友试用它。他得到了和我一样的缓存响应。

所以它不是Dreamhost的缓存;它不是我的ISP或我国的缓存。只有一个结论 - Twitter正在缓存响应。

我在天堂怎么解决这个问题?!?

忘了提及这一点:服务器上的脚本使用PHP并使用cURL从Twitter中检索XML和JSON数据,而本地测试只使用浏览器。两者都有完全相同的结果!

+0

服务器使用cURL运行PHP脚本来获取此数据,而本地尝试使用浏览器。你有没有访问网址?你能告诉我你的价值吗? – aalaap 2009-07-11 03:43:20

+0

我想这不能得到周围,除非Twitter做了一些事情,所以我已经在Twitter的获取满意论坛发布这里:http://getsatisfaction.com/twitter/topics/why_do_the_xml_json_and_direct_methods_of_accessing_a_users_profile_return_different_mostly_stale_data – aalaap 2009-07-11 04:03:25

+0

只是更新这个让你知道所有XML,JSON以及web的statuses_count值现在都会返回相同的值 - 9196。 – aalaap 2011-10-16 10:11:09

首先,我想你应该向Twitter报告这个错误。我看到和你一样的差异,不管是什么样的错误。即使他们正在缓存,我也希望他们身边的缓存会存储一个抽象表单,然后将其呈现为HTML,JSON和XML。我想知道实际情况是否这些请求正在执行类似但不同的查询。

您确定这些值是“旧”吗?例如,你最近是否真的删除了大约50个更新(因为你说HTML是最新的,但显示的数量比其他两个更少)?如果您创建另一个更新,您是否看到HTML编号增量,而其他编号保持不变,还是都是同时增加的?

如果你所说的话是准确的,而且可能是,一般来说,你无法绕过它。 Twitter会希望缓存它的回应,因为每一次重复都会花费不菲。

当您使用Twitter的API时,即使包含缓存,也会受到其约定的束缚。

最好的办法是推特@twitterapi,让他们给你一个回应,为什么这两个表示是不同的。

将?blah = xxxx添加到所有网址。

我不会针对twitter和ocassionaly开发任何东西,通过在浏览器中转到他们手动“追踪”三条推文。他们总是落后半天。我将?asdsadsadsad添加到网址(每次都有不同),并且它会一直更新。我不知道Twitter在做什么,并在寻找问题时来到这里。但我想这个通过GET将随机值附加到url的技巧也可能适用于您的api请求。