2011-06-11 25 views
18

我已經看到許多公司像Twitter一樣抽獎,用戶需要轉發他們的推文,然後其中一個轉發者將獲得獎品或其他信息。 我現在想知道他們如何得到所有轉發者的名單或挑選獲勝者?如何獲取Twitter中的所有轉發者列表?

我查了Twitter API,發現只有這個東西:GET statuses/retweets/:id,但它返回最多100個轉發者。這是唯一的方法嗎?

+1

我知道FavStar有這樣的一些方法,但如果他們通過輪詢做,我不知道。例如http://favstar.fm/users/hipsterhacker/status/78530718464094210 – 2011-06-11 16:58:16

回答

16

看起來很喜歡這裏有幾個服務幾乎完全是這樣做的。一個快速谷歌拉動http://onekontest.com/,還有一些其他的Twitter比賽服務,但他們似乎都不同程度的破碎,因爲他們沒有跟上API的變化。

就Twitter API本身而言,如果您期待超過100個響應,我認爲使用GET statuses/mentions是最有意義的。該API調用返回用戶的任何提及,並且您可以傳遞標誌include_rts以包含推文的任何轉推。然後,如果您想列出特定推文的RT,則可以檢查返回數據中的in_reply_to_status_id字段以查看它是否與原始推文ID匹配。此API調用一次只返回最後800個狀態(200個),因此如果您希望獲得大量數據,則需要隨時反覆輪詢API以獲取所有推文。我想像favstar這樣的服務正在做這個,只是在更大的範圍內。

如果你真的在尋找代碼來做這樣的事情,我寫了一個名爲twitter-rss-digest的sinatra應用程序,它隨時間處理查詢Twitter以跟蹤不同類型的查詢。它非常粗糙,並沒有完全處理這個問題,但如果你想編寫代碼,它可能會指向你正確的方向。

+0

非常詳細和具體!我想完全回答我的問題。謝謝你解釋這個! :) – Rihards 2011-06-16 20:04:46

+0

這是一個很好的黑客! :-) – aalaap 2011-11-02 14:34:37

+1

但GET狀態/提及僅適用於驗證用戶。因此,只要我們發佈了推文,我們就可以找到推特的列表。是否有其他方式可以從不屬於我們個人帳戶的推文中獲取推特的列表? – salvador 2014-07-30 10:29:47

2

我喜歡muffinista的方法,但我認爲如果你想要一個100%完整的轉發列表,只需啓用轉推電子郵件通知並編寫一個腳本,用於輪詢與主題相匹配的電子郵件框「轉推你的一條Tweets! 「並將數據放入表格中。從一開始就這樣做。

5

有一種API方法可以返回多達100個條目的一個光標集合(所以你可以通過它來獲取更多)。

有關Twitter開發者網站GET statuses/retweeters/ids的更多信息,儘管您也可以閱讀他們關於Using cursors to navigate collections的頁面。

編輯補充: 這就是說,對在一個快速谷歌浮出水面開發者網站的第一個線程已經@episod,Twitter的員工說:

你不能有可能獲得所有的他們。數據分散。最好的選擇是使用REST API來確定執行轉發的許多用戶,但數據仍然受到限制。

追蹤轉發發生時最容易,而不是試圖從過去發現轉發。爲此,請使用Streaming API

來源:how to get all retweet of a given tweet

相關問題