2011-08-18 42 views
3

Tweet! jQuery的正常工作的大部分時間,但偶爾我得到這個:問題與鳴叫!對於jQuery

"NetworkError: 400 Bad Request - http://api.twitter.com/1/statuses/user_timeline.json?screen_name=jlowgren&count=5&include_rts=1&page=1&callback=jQuery16202827138555332698_1313661810432&_=1313661810465 

這是jQuery的電話:

$(".tweet").tweet({ 
    username: "jlowgren", 
    count: 5, 
    loading_text: "Loading tweets…", 
    refresh_interval: 120 
}); 

該網站的問題是www.jorum.se

任何有這個英俊解決方案的人都會在業力中得到豐厚的回報!

+0

關於速率限制,請考慮在本地計算機上,您可能會請求twitter API,然後在您通過小部件發送的每小時30個請求之外實現此功能。很多網站開始使用AJAX API的間隔。 – Chamilyan

回答

3

它看起來像你的速度有限。

如果您的應用程序受到REST API的速率限制,它將會 接收HTTP 400響應代碼。對於應用程序 來說,監視其當前速率限制狀態並根據需要動態調整 請求是最佳實踐。 REST API提供了兩種觀察速率限制常見問題解釋的 狀態的方法。

  • 驗證的(OAUTH)請求具有極限350 /小時請求

同時。 。

  • 非認證請求有限制150 /小時請求

來查看當前的速率限制狀態,發送GET請求來

http://api.twitter.com/1/account/rate_limit_status.json


有關詳情,請參見this page

+0

根據網站獲得大量流量的假設,假設獲得評分的唯一方法是將最後已知的結果存儲在服務器上並顯示這些結果,是否應該發生400響應? – jlowgren

+1

不完全。實際上,這實際上不是你真正需要擔心的問題。你看到的東西都是你的機器本地的。除非您懷疑另一個用戶在您的本地計算機上投票Twitter,否則您無需擔心。流量到您的網站實際上與此無關。我認爲你的** OK **每個機器30個請求每小時輪詢API。 – Chamilyan

+1

..但是爲了安全起見,如果你想要的話,請嘗試做下面建議的事情,以防API對於重量級用戶失敗。請記住,除了你的網站之外,他們還需要打開大量網站才能看到問題。按照你的建議做它並不會造成傷害,並向你發送服務器緩存的最後一個已知數據,但這看起來像是一個很大的開銷。也許你可以忍受,加載新的數據信息。 – Chamilyan

1

它對我來說一直都很好(幾經刷新之後)。每個IP沒有限制嗎?

+0

只需每小時afaik請求的限制,但這就是'refresh_interval'的用處,我希望。 – jlowgren

3

我認爲你應該始終假定Twitter網絡偶爾會失敗(它迄今爲止總是這樣做)。所以把你的jquery tweet電話打包在javascript try catch

try { 
    $(".tweet").tweet({ 
    username: "jlowgren", 
    count: 5, 
    loading_text: "Loading tweets…", 
    refresh_interval: 120 
}); 
} catch (error) { 
    // error message or other response goes here 
} 
+0

謝謝,當我下班回來時,我會給你一個旋轉。我想永久解決實際問題將涉及我兌現的結果,以防萬一發生錯誤。 – jlowgren