2009-12-10 83 views
0

我有一個應用程序,我用特定的哈希標籤來發送推文。當我找到散列標籤時,如果用戶不存在,應用程序會自動創建一個用戶。當用戶通過Twitter登錄時,我希望能夠向他們的朋友展示他們也在使用該應用程序。問題在於,擁有大量朋友的Twitter用戶的最大響應數爲100,我必須繼續將API命中10次才能獲得擁有1000個朋友的用戶的用戶。查找用戶基於Twitter好友

另外,當拉朋友信息,我應該只是緩存朋友在一個數組,並移動到匹配的數組,所以我不必再次擊中API?

+0

那麼,如果Twitter的API一次有100的硬限制,那麼除了緩存之外,你真的沒有辦法做到這一點,它並不能真正解決問題......:/ – 2009-12-10 06:52:57

回答

0

鑑於大多數Twitter應用每小時對API調用的限制,您實際上應該緩存幾乎所有內容。在查看任何信息之前,檢查緩存以查看是否有數據。

如果您擔心數據的最新狀況,請在緩存中添加時間戳。當您嘗試從緩存中訪問某些內容時,請檢查到現在的時間差是否大於某個定義的數量(取決於您的數據的新鮮程度是多少)&您可以繼續使用請求來訪問服務器的次數)刷新數據。

這有點像寫一個好的網絡爬蟲(Jeff Atwood似乎建議只有谷歌完成)。很容易寫出一些試圖一次性從互聯網上下載所有內容的東西,但寫出一些能夠以可持續,可管理的方式實現的東西會更困難。

Twitter已經明智地迫使人們通過在他們的API上設置「每小時訪問次數」來考慮這些問題。

+0

有一些類似的實例我想在http://www.tweetfriends.com/和http://friendorfollow.com/上做什麼,除非我會比較自己的數據而不是另一個Twitter用戶。 – Seth 2009-12-10 07:43:15

+0

對不起,我現在在工作,我無法訪問Twitter相關網站 - 當我有機會時,我會看看。 – 2009-12-10 08:20:00

+0

我寫了一個twitter應用程序,可以找到我的所有追隨者,他們的追隨者以及他們之間的聯繫。請參閱http://www.softwareproductdev.com。我使用了一種與我所描述的技術類似的技術 - 該軟件可以使用150次訪問,然後可以在任何時候重新運行,並繼續與尚未下載的任何追隨者。 – 2009-12-10 08:26:03

0

我發現了一個API調用,它只返回Twitter用戶朋友的ID並返回5000以上,但是嘗試返回全部。該電話的文檔在這裏:http://apiwiki.twitter.com/Twitter-REST-API-Method:-friends%C2%A0ids

我所做的是從API調用中獲取響應,並使用IN創建了一條SQL語句。這樣,我現在可以通過SQL處理所有我的排序等,而不是做一個討厭的數組比較。