2014-03-25 177 views
0

我正在使用Twitter公共流API來搜索某些關鍵字。我正在用Java編寫腳本,因此我使用twitter4j。現在,我絆了有關狀態刪除通知的信息:Twitter - 公共流處理刪除通知

狀態刪除通知(刪除)

這些消息表明一個給定的資料Tweet已被刪除。客戶端 代碼必須承認這些消息通過清除從 內存和任何存儲或歸檔引用的鳴叫,即使在一個 刪除消息早些時候到達它的流,Tweetly 引用的罕見情況。

https://dev.twitter.com/docs/streaming-apis/messages#Status_deletion_notices_delete

所以我創建的方法,當這樣的通知時,從我的數據庫中刪除記錄。不幸的是,這種通知從未發生。我搜索找出我做錯了,發現Twitter的開發人員部分就同一問題的一些帖子:

但不幸的是,所有這些討論都沒有答案所以對我來說,似乎我沒有犯我的代碼錯誤,但twitter4j從來沒有給我發送刪除通知。


我想尊重Twitter用戶的隱私 - 至少出於法律原因。所以我的問題是:

  • 我該怎麼做才能尊重用戶的隱私?
  • 爲了履行我的法定職責,我該怎麼做?

一種選擇似乎是週期性地在我的數據庫保存的所有推文進行迭代,並要求他們從Twitter,看看我是否可以得到結果回來與否(所以它們已被刪除)。但這似乎不是一種可行的方式,因爲數據會越來越多,因此在某些時候我會有侷限性(及時,允許推特請求......)。所以我該怎麼做?

在此先感謝!非常感謝您的幫助。
路德維希

twitter4j v.3.0.6

+0

有一箇舊的計算器相同的問題問題:http://stackoverflow.com/questions/5955021/detect-tweet-deletion-with-twitter-streaming-api?rq=1(但也沒有真正的答案) – DrLudwig3

回答

1

鑑於微博的容積的性質,這是不合理的假設,你會檢查是否所有的鳴叫仍然存在。你應該確保你正確處理來自twitter的刪除通知。他們有責任實際發送刪除通知。

這就是說,我收到來自twitter的刪除通知。但是,我們並未使用公共流,我們正在使用站點流,它依賴於授權特定的社交帳戶並將這些帳戶的所有更新(例如收藏夾,關注塊,推文,轉推等)實時流式傳輸給我們。

如果您正在使用過濾器進行流式處理,例如,通過與新項目相同的管道運行所有已刪除的項目可能並不可行(或者至少非常費力)。或者,也許,根據您運行過濾器的時間猜測您發送的是哪一個。

正如您所鏈接到的問題所述,公共流API不一定會將它們發送出去。我會盡力處理它們,並且可能會提供一種工具來手動刪除任何通過其他渠道發出的請求,但不必擔心太多,因爲Twitter沒有提供適當的工具來通知此類實例。

+0

感謝您的回答covati。你的建議似乎對我而言是目前唯一合理的處理方式。我會讓這個問題公開幾天,看看是否有人有另一個意見和想法如何處理它! – DrLudwig3