【问题标题】:Twitter - public Stream handling deletion noticesTwitter - 公共 Stream 处理删除通知
【发布时间】:2014-05-03 13:34:28
【问题描述】:

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

状态删除通知(delete)

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

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

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

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


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

  • 我可以做些什么来尊重用户的隐私?
  • 我必须做些什么来履行我的法律责任?

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

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

twitter4j v.3.0.6

【问题讨论】:

标签: twitter twitter4j twitter-streaming-api


【解决方案1】:

鉴于推文数量的性质,假设您会检查所有推文是否仍然存在是不合理的。你应该确保你正确地处理了来自 twitter 的删除通知。他们有责任实际发送删除通知。

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

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

正如您链接到的问题中所述,公共流 API 不一定会将它们发送出去。我会努力处理它们,并且可能会提供一个工具来手动删除任何请求,如果请求是通过另一个渠道进来的,但不要太担心,因为 twitter 没有提供适当的工具来通知此类实例.

【讨论】:

  • 感谢您的回答 covati。你的建议对我来说 - 目前 - 是处理它的唯一合理方法。我会让这个问题开放几天,看看是否有人有其他意见和想法如何处理它!
猜你喜欢
  • 1970-01-01
  • 2018-03-01
  • 2017-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多