2010-06-03 20 views
11

我正在使用jtwitter編寫一個twitter應用程序 - 它運行在我工作的服務器內部。反正 - 每當我下班運行它,它會返回下面的錯誤,我只是做每小時一對夫婦的請求:Twitter api - 每小時不超過150個請求

HTTP/1.1 400 Bad Request 
{"request":"/1/statuses/user_timeline.json?count=6&id=cicsdemo&","error":"Rate limit exceeded. Clients may not make more than 150 requests per hour."} ] 
2010-06-03 18:44:49 zero.timer.TimerTask::run Thread-3 
    SEVERE [ CWPZA3100E: Exception during processing for timer task, "twitterTimer". Exception: java.lang.ClassCastException: winterwell.jtwitter.Twitter$Status incompatible with java.lang.String ] 

我離家相同的代碼 - 它的罰款。

很顯然,在某些時候,Twitter認爲我們的工作全部來自一個直接的IP--這就是爲什麼它達到了它不應該達到的限度。

我有任何選擇或解決方法 - 我可以將限制從我的直接計算機IP計算 - 還是計算到我的帳戶而不是IP?我可以使用代理嗎?有任何其他身體有這個問題,解決它?!

之前有人問APP必須住在我的工作 - 它不能運行在其他地方!

乾杯,

安迪

回答

16

身份驗證對一個帳戶,以便您正在使用的帳戶的API請求限制,而不是unauth'd IP限制:

http://dev.twitter.com/pages/rate-limiting

http://dev.twitter.com/pages/auth

如果您仍然存在問題,您可以要求將公司IP列入白名單,但對於您所談論的內容(只需要一小時的幾個請求),只需授權給某個帳戶即可。

+0

這看起來不錯 - 但回調URL不會公開可用,因爲我無法手動進行身份驗證,所以這種方案就會被破壞。 多煩人 - 這是什麼讓我留下了? – RenegadeAndy 2010-06-03 21:37:10

+0

我們不能得到一個代碼的例子嗎? – 2013-02-12 10:46:48

2

你可以問Twitter的走高限制高達每小時20000個請求。這是一個非常簡單的過程documented on their site.

+0

這似乎不是REST和搜索API的選項。在使用Streaming API時,您顯然仍然可以申請例外。 – CBono 2012-10-10 20:35:22

2

你也可以考慮使用它們的streaming api,它更好(實時)。它也會處理這個限制,因爲只有在新數據到達時纔會有請求。