0

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

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

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

我可以在 Twitter 上查看第一条推文。我想知道这是否可以通过编程方式使用Linq2TwitterTweetinvi 之类的东西?

我试过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 这样的第三方消防软管的情况下返回这么远?

4

1 回答 1

0

Search API 只能追溯到几周前,并不是一个全面的搜索引擎。相反,它仅根据未记录的 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();

由于您的自 ID 太早了,由于前面解释的原因,您可能仍然无法收到这些早期结果。注意 SingleOrDefault 上的 await 关键字和“Async”后缀。完成后,您需要确保代码的整个调用链是异步的。

于 2016-10-26T18:32:54.087 回答