Twitter - 公共流处理删除通知

时间:2014-03-25 15:29:08

标签: twitter twitter4j twitter-streaming-api

我正在使用Twitter公共流API来搜索一些关键字。我用Java编写脚本,因此使用twitter4j。现在我偶然发现了有关状态删除通知的信息:

  

状态删除通知(删除)

     

这些消息表明已删除给定的推文。客户   代码必须通过清除引用的Tweet来兑现这些消息   内存和任何存储或存档,即使在极少数情况下   删除消息早先在Tweet它的流中到达   引用。

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

因此,当发生此类通知时,我创建了从数据库中删除记录的方法。不幸的是,这种通知从未发生。我搜索了一下我在做错了什么,并在twitter开发者部分找到了一些关于同样问题的帖子:

但不幸的是,所有这些讨论都没有得到答案。所以对我而言,我的代码似乎没有错,但twitter4j从未向我发送删除通知。


我想尊重Twitter用户的隐私 - 至少出于法律原因。所以我的问题是:

  • 如何尊重用户隐私?
  • 我需要做些什么来履行我的法律职责?

一种替代方案似乎是定期遍历我的数据库中所有已保存的推文,并从Twitter请求它们以查看我是否得到了结果(因此它们被删除)。但这似乎并不是一种切实可行的方式,因为数据会越来越多,因此在某些时候我会有限制(及时,允许推特请求,......)。那我该怎么办?

提前致谢!非常感谢您的帮助 路德维希

twitter4j v.3.0.6

1 个答案:

答案 0 :(得分:1)

鉴于推文数量的性质,假设你要查看所有推文是否仍在那里是不合理的。您应确保正确处理来自Twitter的删除通知。他们有责任实际发送删除通知。

话虽如此,我收到来自Twitter的删除通知。但是,我们没有使用公共流,我们正在使用网站流,它依赖于授权特定的社交帐户并将这些帐户的所有更新(例如收藏夹,关注,块,推文,转发等)实时流式传输给我们

例如,如果您正在使用过滤器进行流式处理,则通过与新项目相同的管道运行所有已删除的项目可能不可行(或至少非常费力)。或者,根据您运行过滤器的时间来猜测您的发送时间。

如您所链接的问题所述,公共流式传输API不一定会将其发送出去。我努力处理它们,并且可能提供一个工具来手动删除任何请求通过另一个通道进入,但不要过于担心它,因为twitter没有提供适当的设施通知此类情况。