2012-04-18 132 views
1

我正在使用Twitter API編寫基於PHP的應用程序。直到現在,我一直通過PHP頁面上的GET請求使用REST API。但是,隨着我的應用程序規模擴大,我可以輕鬆看到它超過每小時150個請求的限制。原因如下:多個用戶的Twitter API速率限制

我有一些主題類別,每個主題都圍繞主題定期輪詢Twitter API以獲取推文。例如,我有:mysite.com/cars,mysite.com/trucks等。用戶可以轉到任一頁面。當他在頁面上時,通過對我設置的PHP頁面進行AJAX調用,實時刷新更新。 PHP頁面確定用戶來自哪個類別(汽車,卡車),針對搜索結果投票Twitter,然後將JSON返回到類別頁面。這聽起來令人困惑,但有一些無關的原因需要中間PHP頁面。

問題是,由於PHP頁面正在提出請求,它會很快吃掉速率限制(想象一下,如果有20個類別,而不是隻有汽車和卡車)。我無法使用多個參數進行單個調用,因爲它會結合多個類別的推文,而我無法將它們分開。我可以緩存結果,但如果我這樣做了,我添加的類別越多,API調用之間的時間就越長。

那麼我該如何解決這個問題呢?我查看了流媒體API,但它僅適用於oAuth'd用戶,我不希望我的用戶必須登錄任何內容。我可以在PHP頁面上使用流,然後在每次分類頁面輪詢PHP頁面時發出連續請求嗎?謝謝你的幫助!

+0

使用緩存。您可以緩存來自Twitter的每個響應,然後爲其他用戶重新使用緩存的內容。這僅在用戶之間存在大量重疊時纔有用。 – Cheeso 2012-04-26 13:52:29

回答

1

a)您不必在流式API中使用您的網站用戶的oAuth憑證 - 只要您的: 將它們置於dev.twitter.com中的某個位置並對它們進行硬編碼。你的用戶不會知道後臺有任何oAuth。 b)不要使用匿名請求(150每IP每小時)使用oAuth請求(350每oAuth每小時)。您不必要求用戶唱歌 - 只需登錄幾個(1就足以開始)您的私人Twitter帳戶。如果您不喜歡創建Twitter登錄功能,您可以在dev.twitter.com上的twitter應用程序中獲取您的Twitter帳戶的憑據。

c)由於@Cheeso提到 - 緩存!不要讓每個頁面載入請求。