【问题标题】:Stream tweets which mention @friendname串流提及@friendname的推文
【发布时间】:2014-05-23 12:30:16
【问题描述】:

我有一个 C# 应用程序,可以成功传输我的任何朋友创建的所有推文(使用 Tweetinvi 库和以下代码)。

var userStream = Tweetinvi.Stream.CreateUserStream();

userStream.TweetCreatedByFriend += (sender, args) =>
{
    ConsoleLog(args.Tweet.Text);
}

我如何(如果可能)收听提到我朋友的网名的推文? 例如我是 @alice 的朋友。现在 @bob,他是 NOT 我的朋友,他的推文是这样的:

Hi @alice, how are you ?

我如何收听 @bob 的上述推文,他是 NOT 我的朋友,MAYMAY NOT 是 @alice朋友还是追随者

【问题讨论】:

    标签: c# twitter friend twitter-follow tweetinvi


    【解决方案1】:

    你不能那样做。或者至少如果你有太多朋友,我认为你不能。 您目前我能看到的唯一解决方案是使用 FilteredStream,因为它是一个公共流,您可以访问您未关注的用户的推文。

    如果您的关注者列表足够低,您可以执行以下操作

    var fs = Stream.CreateFilteredStream();
    fs.AddTrack("@userScreenName");
    

    因此,您将能够关注来自任何 Twitter 用户的所有包含 @userScreenName 的推文。

    【讨论】:

    • 是的,这似乎是迄今为止唯一的方法。但是因为我必须在已经运行的流中添加轨道,所以停止/添加轨道/恢复流不太可能是一个可靠的解决方案,因为我正在尝试使用 Tweetinivi。如果您对此有更好的建议,请告诉我?
    • 我会尝试看看它。但在任何情况下,使用 Tweetinvi 或任何其他 API,您都需要使用您的参数请求端点。因此,无法在流已经运行时对其进行修改。您将始终必须停止 StreamReader,然后使用正确的端点重新启动 StreamReader。
    • 所以我没有误会,Tweetinvi.Stream.TrackedStream.StartStream(endpoint_url_with_parameters) 是我的情况。每次添加新曲目时,我必须在哪里提供更新的端点 URL?好的,您能给我一个正确的示例,说明用户 @username 之后的 endpoint_url 吗?
    【解决方案2】:

    我知道这是一个非常古老的问题,但请尝试使用 UserStream 并过滤掉 UserMentions。我现在正在尝试自己找到一种更好的方法。每次用户提及您时,他们都会被添加到您的 UserStream 中。

    var stream = Tweetinvi.Stream.CreateTweetStream();
    stream.TweetReceived += (sender, args) =>
    {
             if(args.Tweet.IsRetweet || !args.Tweet.UserMentions.Any((x)=> x.Id == user.Id))
              {
                   return;
              }
           //Code to respond to mention here
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-09
      • 1970-01-01
      • 2017-03-12
      • 2014-06-24
      • 1970-01-01
      • 2015-01-07
      • 2017-04-12
      相关资源
      最近更新 更多