c# - 如何获取几个月前的推文?

标签 c# twitter linq-to-twitter

我正在使用 LINQ to Twitter 4.1.0 检索带有特定主题标签的推文。但我面临的问题是我只收到 600 条推文。 我想获得几个月前的推文。 谁能建议我怎么做?

 [List<Search> searchResultsList = new List<Search>();
        ulong lastId = 0;
        var context = new TwitterContext(auth);
        int count = 0;
        int maxNumberToFind = 1000;
        var dateFrom = DateTime.Now.AddDays(-20);

        var searchResults =
                         (from search in context.Search
                          where search.Type == SearchType.Search &&
                                search.Query == Query &&
                                search.SinceID == 2016-12-11 &&                                
                                search.Count == 150 &&
                                search.ResultType == ResultType.Recent &&
                                search.IncludeEntities == true
                          select search).ToList();][1]

最佳答案

我建议查看 documentation看起来您可以指定一个“直到”日期和一个 MaxId:

Until: Tweets up to this date, YYYY-MM-DD. (string)

MaxID: Return tweets prior to or equal to this ID. (ulong)

我会查询“直到”日期并使用 LINQ 的“LastOrDefault()”获取最后一条推文。然后使用该对象的 ID 作为下一个查询的 MaxID 进行另一个查询。这应该会在您要求的特定日期之前为您提供所有推文。

注意这个参数也很重要:

Count Number of tweets to retrieve for each page. Max is 100. (int)

这可能与您收到的推文数量有限有关。

编辑: This post Joe Mayo(LinqToTwitter 的创建者)的文章也可能对您有所帮助。这是一些代码(免责声明:我没有测试过这个,但你明白了):

List<Search> searchResultsList = new List<Search>();
    var context = new TwitterContext(auth);
    var maxCount = 100;
    var untilDate = new DateTime(2016,12,11);

    var lastTweetInRange =
                     (from search in context.Search
                      where search.Type == SearchType.Search &&
                            search.Query == Query &&                               
                            search.Count == maxCount &&
                            search.Until == untilDate &&
                            search.IncludeEntities == true
                      select search).LastOrDefault();

    var tweetsInRange = (from search in context.Search
                        where search.Type == SearchType.Search &&
                                search.Query == Query &&                               
                                search.Count == maxCount &&
                                search.MaxId == lastTweetInRange.id &&
                                search.IncludeEntities == true
                        select search).ToList();

关于c# - 如何获取几个月前的推文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41593202/

相关文章:

html - Twitter 小部件覆盖了可能出现在它上面的另一个 div。如何让 twitter widget 出现在下面?

twitter - 使用 Google Script 发推文

c# - 通过 C# 刷新并保存 excel 文件

c# - MSChart 更新 block worker thead

c# - String 类中的哪个方法只返回前 N 个字符?

twitter - LinqToTwitter 检查授权

c# - 如何使用 C# 和 LINQ to Twitter 库更新 Twitter 上的状态

c# - 如何在查询完成之前按顺序开始处理并行查询的结果?

jquery - 我如何通过 jquery 更改文本区域上的主题标签颜色

c# - 等待的任务不异步运行