2009-07-11 92 views
0

我正在構建一個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

回答

0

首先,我想你應該向Twitter報告這個錯誤。我看到和你一樣的差異,不管是什麼樣的錯誤。即使他們正在緩存,我也希望他們身邊的緩存會存儲一個抽象表單,然後將其呈現爲HTML,JSON和XML。我想知道實際情況是否這些請求正在執行類似但不同的查詢。

您確定這些值是「舊」嗎?例如,你最近是否真的刪除了大約50個更新(因爲你說HTML是最新的,但顯示的數量比其他兩個更少)?如果您創建另一個更新,您是否看到HTML編號增量,而其他編號保持不變,還是都是同時增加的?

0

如果你所說的話是準確的,而且可能是,一般來說,你無法繞過它。 Twitter會希望緩存它的迴應,因爲每一次重複都會花費不菲。

當您使用Twitter的API時,即使包含緩存,也會受到其約定的束縛。

最好的辦法是推特@twitterapi,讓他們給你一個迴應,爲什麼這兩個表示是不同的。

0

將?blah = xxxx添加到所有網址。

我不會針對twitter和ocassionaly開發任何東西,通過在瀏覽器中轉到他們手動「追蹤」三條推文。他們總是落後半天。我將?asdsadsadsad添加到網址(每次都有不同),並且它會一直更新。我不知道Twitter在做什麼,並在尋找問題時來到這裏。但我想這個通過GET將隨機值附加到url的技巧也可能適用於您的api請求。