设置 twitter 流以根据关键字从用户那里获取实时流

Posted

技术标签:

【中文标题】设置 twitter 流以根据关键字从用户那里获取实时流【英文标题】:Set up twitter stream to get live streams from a user based on keywords 【发布时间】:2019-12-12 09:45:46 【问题描述】:

如果我想要在特朗普发布任何带有“种族主义”或“移民”一词的推文时进行直播,我该怎么做?我不确定这是否有效,更不用说如何向查询中添加多个关键字了。

public static void Stream_SampleStreamExample()

    var stream = Stream.CreateUserStream();
    stream.AddCustomQueryParameter("realDonaldTrump", "racist");
    stream.MessageReceived += (sender, args) =>
    
        Console.WriteLine(args.Message.Text);
    ;

    stream.AddTweetLanguageFilter(LanguageFilter.English);            

    stream.StartStream();

我必须先关注用户吗?

public static void AuthenticatedUser_FollowUser(string userName)

    var authenticatedUser = User.GetAuthenticatedUser();
    var userToFollow = User.GetUserFromScreenName(userName);

    if (authenticatedUser.FollowUser(userToFollow))
    
        Console.WriteLine("You have successfully sent a request to follow 0", userToFollow.Name);
    

【问题讨论】:

【参考方案1】:

目前这可行。首先

string userStr = "realDonaldTrump";

// From a user screen name
user = User.GetUserFromScreenName(userStr);
userIdentifier = new UserIdentifier(user.Id);

添加要匹配的关键字:

fs.AddTrack("immigration");
...

设置过滤流:

IFilteredStream fs = Stream.CreateFilteredStream();
and so on...

然后,在 OnMatchedTweet 中,查看推文的创建者是否是您想要的用户。

OnMatchedTweet(object sender, MatchedTweetReceivedEventArgs args)
        
    if (args.Tweet.CreatedBy.Id != user.Id)
        return;
    ...

【讨论】:

以上是关于设置 twitter 流以根据关键字从用户那里获取实时流的主要内容,如果未能解决你的问题,请参考以下文章

获取 Twitter 用户的整个用户时间线

从特定用户那里获取对特定推文的推文回复

使用 JavaScript 提交表单时,如何从用户那里获取数量变量?

Twitter如何获取其地理位置数据?

如何在 twitter4j 中将 twitter ID 转换为用户名?或者我可以使用 id 来获取用户简介吗?

如何从机器人聊天中获取 Twitter OAuth 访问令牌/秘密?