1

我正在使用 Twitter4j TwitterStream.user() 来读取经过身份验证的用户的时间线。我只对我的用户关注的用户的推文感兴趣。我从流中获得的大约 99% 的状态是我的用户不关注的用户的转发和回复。我通过维护我的用户关注列表并根据列表检查每个状态来过滤它们,此外我正在检查 status.getInReplyToStatusId 是否为零。它有效,但似乎效率很低,因为我读取的 99% 的数据随后被过滤掉了。twitter4j 有什么方法可以指示用户流只发送原始推文而不发送推文和回复?

4

1 回答 1

0

似乎您可以通过参数过滤回复的推文,但我不确定它是否在 twitter4j 中实现。但是关于转推,我认为您必须手动过滤掉它们。

从用户流api:

用户流式传输消息

消息类型

REST API 不返回一些流式消息。有关信息,请参阅流式消息类型。

来自用户关注的帐户的数据

with 参数控制接收到的消息的类型。User Streams 的默认值为 with=followings,它提供有关用户和用户关注的数据(经过身份验证的用户关注的帐户)。with=user 的设置仅发送有关用户的事件,而不发送有关其关注者的事件。

回复

默认情况下,@replies 仅从相互关注者发送。可以使用replies=all 参数启用所有@replies by following。例如,如果 Alice 关注 Bob,但 Alice 没有关注 Carol,默认情况下,如果 Bob @replies Carol,Alice 不会看到这条推文。默认行为模仿 twitter.com 和 api.twitter.com 行为。如果应用程序希望显示所有@replies,或@replies 的过滤子集,请使用replies=all。

直接消息

直接消息仍然需要适当的权限。请参阅应用程序权限模型。

于 2013-01-04T08:50:48.413 回答