使用Twitter API进行历史搜索



如果我通过Twitter进行以下搜索-

search term: "from:jack just setting up my twttr"

URL: https://twitter.com/search?q=from%3Ajack%20just%20setting%20up%20my%20twttr& src = typd

我可以在Twitter上查看第一条Tweet。我想知道如果这是可能的编程使用像Linq2Twitter或Tweetinvi?

我已经尝试使用Linq2Twitter像这样-

TwitterContext twitterCtx = new TwitterContext(auth);
const int MaxSearchEntriesToReturn = 100;
string searchTerm = "from:jack just setting up my twttr";
            List<Status> searchResponse =
                (from search in twitterCtx.Search
                 where search.Type == SearchType.Search &&
                       search.Query == searchTerm &&
                       search.Count == MaxSearchEntriesToReturn &&
                       search.SinceID == 1
                 select search.Statuses)
                .SingleOrDefault();

然而,这在searchResponse中带回了零推文计数,这可能吗?我的猜测是,由于这条推文已经发布了10年,api限制根本不允许你在没有Gnip这样的第三方消防水带的情况下回到这么远。

搜索API仅在几个星期前推出,并不是一个全面的搜索引擎。更确切地说,它只根据未记录的Twitter相关算法显示:

Twitter搜索API

也就是说,你的代码不能工作,因为LINQ to Twitter是异步的。您应该将查询重写为:

        List<Status> searchResponse =
            await
            (from search in twitterCtx.Search
             where search.Type == SearchType.Search &&
                   search.Query == searchTerm &&
                   search.Count == MaxSearchEntriesToReturn &&
                   search.SinceID == 1
             select search.Statuses)
            .SingleOrDefaultAsync();

因为您的SinceID是如此早,您仍然可能无法收到早期结果,原因在前面已经解释过了。注意SingleOrDefault上的await关键字和"Async"后缀。一旦完成,你需要确保你的代码的整个调用链是异步的。

相关内容

  • 没有找到相关文章

最新更新