使用linqtotwitter进行搜索

时间:2016-10-25 18:27:03

标签: c# linq-to-twitter

我正在做以下事情 -

TwitterContext twitterCtx = new TwitterContext(auth);
string searchTerm = "\"from:stephenfry\"";
List<Status> searchResponse =

    (from search in twitterCtx.Search
     where search.Type == SearchType.Search &&
           search.Query == searchTerm &&
           search.Count == 10 &&
           search.SinceID == 0 
     select search.Statuses)
    .SingleOrDefault();

此功能正常,可以从@stephenfry帐户中返回10条推文。但是我试图从我自己的帐户中获取推文,该推文具有可公开访问的推文(我确保在设置/安全性中未选中Protect my Tweets复选框。)

然后,我根据自己的帐户对我的应用进行了身份验证,以获得有效的OauthTokenOauthTokenSecret,以便twitterCtx完全有权访问所有推文但是当我将searchTerm更改为 -

时,从我的帐户
"\"from:myTwitterAccount\""

仍然 searchResponse返回计数为零??

它似乎相当受欢迎或错过,我发现其他帐户看起来可以公开访问,但是在执行上述过程时,他们也会返回零帖子,而有些工作完全正常。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

Search API只能回溯几周,并不是一个全面的搜索引擎。相反,它只根据未记录的Twitter相关性算法显示:

Twitter Search API

在这种情况下,@ stephenfry是一个经过验证的帐户,这意味着Twitter认为推文是相关的。我确定经过验证的帐户并不是唯一的标准,但可能会说明为什么有些推文出现而其他推文没有出现。

顺便说一句,我认为问题很好,这就是为什么他们需要多次投票,以防止异常值,然后才真正关闭。

答案 1 :(得分:0)

对于任何试图解决这个问题的人来说,请改为:

var tweets = await
(
    from tweet in twitterCtx.Status
    where   tweet.Type == StatusType.User &&
            tweet.ScreenName == "TheAccountsOnScreenName"
    select tweet
)
.ToListAsync();