尝试通过 c# 使用 Tweetinvi 库获取过滤流。
我正在尝试做类似于搜索的事情,我已经能够成功接收推文:
public List<ITweet> SearchTweets(string query)
{
List<ITweet> tweets = new List<ITweet>();
TwitterCredentials.ExecuteOperationWithCredentials(Credentials, () =>
{
var searchParam = Search.GenerateSearchTweetParameter(query);
searchParam.Lang = Language.English;
searchParam.MaximumNumberOfResults = 100;
tweets = Search.SearchTweets(searchParam);
});
return tweets;
}
但这里的限制是我最多只能获得 100 条推文。我想以类似的方式利用流并获得与tracks
我通过的推文匹配的推文流。我试过这个:
public void FilterStream(string query)
{
IFilteredStream tweets;
TwitterCredentials.ExecuteOperationWithCredentials(Credentials, () =>
{
var filteredStream = Tweetinvi.Stream.CreateFilteredStream();
filteredStream.AddTrack(query);
filteredStream.AddTrack("#" + query);
filteredStream.MatchingTweetReceived += (sender, args) => { Debug.WriteLine(args.Tweet.Text); };
filteredStream.StartStreamMatchingAllConditions();
});
}
但问题是它似乎在无限循环中运行,我不确定在哪里停止或限制我从流中收到的推文数量以使其停止。图书馆的文档很不清楚,我一直无法实现我正在寻求的行为。我确定我在正确的路线上,只是不确定如何停止流并将我收到的所有推文存储在List<ITweet>
构造中。