2010-11-04 32 views
5

我剛剛開始混淆對 Twitter API的非常非常基本的調用(http://api.twitter.com/ 1/status/user_timeline.json)至 通過cURL將我的推文發送到我的網站。然而,使用一個 沒有人知道的頁面(因此消除了不經意的流量的可能性),我在 之前得到了一個速率限制超出的事情,我甚至有機會測試它。它表示重置時間爲 小時,因此我再次檢查,並且一分鐘後仍然有效,但是它返回 告訴我我的費率限制已超出。對於知道Twitter API和/或捲曲的人有幾個問題:cURL調用Twitter API會議「速率限制」,但不超過5個請求

首先,應用於我的服務器(而不是用戶)的速率限制?我會這樣認爲的,但是 可能會讓它變得艱難。即使每個訪問者的一個API調用 可能在具有邊際流量的網站上輕鬆超過一小時內的速率限制 。有沒有辦法將呼叫與訪問者關聯,而不是 服務器?似乎可能不是,但我不完全確定整個API是如何工作的,並且cURL似乎在許多 位置中被提倡。我知道,如果我使用JSON和AJAX數據,我可以從用戶請求 ,但僅僅爲了爭辯,什麼 關於cURL?

其次,任何想法如何我可以超過我的利率限制,甚至沒有 刷新頁面?我支付在另一個位置託管,所以我可能 與另一個站點共享服務器空間,但我的網站肯定有 一個獨特的IP,所以應該......應該是好的,對吧?那麼 怎麼樣,即使沒有運行代碼(或者運行一次就運行 ?),我已經超過了速率限制?

這就是我已經得到了代碼,如果它可以幫助:

$ch=curl_init("http://api.twitter.com/1/statuses/user_timeline.json?screen_name=screenname"); 
    curl_setopt_array($ch,array(
      CURLOPT_RETURNTRANSFER=>true, 
      CURLOPT_TIMEOUT=>5, 
     ) 
    ); 
$temp=curl_exec($ch); 
curl_close($ch); 
$results=json_decode($temp,true); 

而且,我現在得到它,這樣如果Twitter返回限速錯誤,錯誤記錄在一個文本文件,以及限制將重置的時間。看看這個文件,它唯一更新的時間(我沒有重寫,它只是增加了)是當我加載頁面(這可能在一個小時內一次或兩次),所以它不像其他的東西正在使用此頁面並調用此URL。

任何幫助?

回答

3

已認證的請求應計入用戶的350 /小時限制。未經驗證的請求會根據您的IP地址的每小時150個限制進行計算。

如果您在開發過程中遇到了限制,Twitter一般很樂意將開發者服務器IP列入白名單。

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

某些應用程序發現默認的上限證明不夠。在這種情況下,我們提供白名單。可以將用戶帳戶和IP地址都列入白名單。無論是帳戶還是IP地址,每個白名單實體允許每小時20,000次請求。如果您正在開發一個應用程序並希望考慮將其列入白名單,請填寫whitelisting request form。由於請求數量衆多,我們無法全部回覆。如果您的請求獲得批准,您會收到一封電子郵件。

+0

好的,這是有道理的。我只是拉我自己的Twitter流,所以沒有任何需要涉及任何其他用戶名,甚至是我自己的用戶名,因爲它是一個公共流。 – 2010-11-04 22:16:38

+0

我總是忘記我在這些回覆中不能有回報。不知道爲什麼我可能會遇到費率限制?我不刷新頁面接近150次。我不應該需要白名單,因爲它應該是四行代碼,我已經設置好了。但出於某種原因,在重置後的20分鐘內,即使我沒有加載該頁面一次,我的限制已達到。 – 2010-11-04 22:18:06

+0

我會檢查你在http://twitter.com/settings/connections上連接的第三方應用程序。你不是與其他一羣人共享的IP,我想? – ceejayoz 2010-11-04 22:24:27