【问题标题】:How to filter retweets and replies from Twitter User Stream using Twitter4j?如何使用 Twitter4j 过滤来自 Twitter 用户流的转发和回复?
【发布时间】:2012-06-09 22:07:12
【问题描述】:
我正在使用 Twitter4j TwitterStream.user() 来读取经过身份验证的用户的时间线。我只对我的用户关注的用户的推文感兴趣。
我从流中获得的大约 99% 的状态是我的用户不关注的用户的转发和回复。我通过维护我的用户关注列表并根据列表检查每个状态来过滤它们,此外我正在检查 status.getInReplyToStatusId 是否为零。它有效,但似乎效率很低,因为我读取的 99% 的数据随后被过滤掉了。
twitter4j 有什么方法可以指示用户流只发送原始推文而不发送转发和回复?
【问题讨论】:
标签:
twitter4j
twitter-streaming-api
【解决方案1】:
似乎可以通过参数过滤回复的推文,但我不确定它是否在 twitter4j 中实现。但是关于转推,我认为您必须手动过滤掉它们。
来自用户流api:
用户流消息
消息类型
REST 未返回一些流式消息
蜜蜂。有关信息,请参阅流式消息类型。
来自用户关注的帐户的数据
with 参数控制接收到的消息类型。这
用户流的默认值是 with=followings,它提供有关的数据
用户和关于用户的追随者(
经过身份验证的用户如下)。 with=user 的设置只发送事件
关于用户,而不是关于他们的追随者的事件。
回复
默认情况下,@replies 仅从相互关注者发送。所有@回复
可以使用 replies=all 参数启用以下操作。为了
例如,如果 Alice 关注 Bob,但 Alice 没有关注 Carol,则
默认情况下,如果 Bob @replies Carol,Alice 看不到这条推文。这
默认行为模仿 twitter.com 和 api.twitter.com 行为。如果
应用程序希望显示所有@replies,或过滤的子集
@replies,使用replies=all。
私信
直接消息仍然需要适当的权限。见
应用权限模型。