2013-04-01 39 views
1

我做twiiter應用程序,我做一個循環從Twitter的API 獲取數據結果表明錯誤Twitter的API將返回HTTP 429 - 請求過多

[raw] => HTTP/1.1 429 Too Many Requests 
[content-type: application/json; charset=utf-8 
date: Fri, 29 Mar 2013 20:03:07 UTC 
server: tfe 
set-cookie: guest_id=v1%3A136458738755627462; Domain=.twitter.com; Path=/; Expires=Sun, 29-Mar-2015 20:03:07 UTC 

我該如何解決

+5

請求更少? :) – duskwuff

+0

在很多情況下,你會在循環的情況下使用流式API更好地處理。 – ceejayoz

回答

11

Twitter API documentation有一篇關於rate-limiting的長篇文章。

15個在API的版本1.1分鐘視窗

速率限制被分爲15個分鐘的間隔,這是從60分鐘塊在版本1.0中的變化。此外,所有1.1端點都需要認證,因此不再有未經認證的呼叫和速率限制的概念。

在API的第一個版本中,啓用OAuth的應用程序可以每個訪問令牌每小時啓動350個基於GET的請求,API v1.1的速率限制模型允許通過每個方法的請求限制提供更廣泛的請求。有兩個初始桶可用於GET請求:每15分鐘撥打15個電話,每15分鐘撥打180個電話。這些主要桶概述爲in detail here

單擊報價中的鏈接以獲得按資源排序的特定限制(在上述15分鐘窗口中)。

+0

那麼,我該如何修復我的代碼 –

+3

在15分鐘的窗口中減少了請求。您可以緩存來自API的響應並從中讀取數據,而不是每次都通過查詢來刷新它。例如。每次用戶點擊一個按鈕時都不要查詢家庭時間線,而是先閱讀緩存的結果。然後爲緩存設置一個超時值,以便緩存的數據不會太過時。 – nkr

2

你試圖經常請求更新。等一個小時,然後重新運行你的應用程序,但每5分鐘只查詢一次Twitter。