繁体   English   中英

使用LINQ进行Twitter查找推文的更好方法是什么?

[英]What is the better way to find tweet using LINQ to twitter?

我在项目中使用Twitter,需要按状态ID查找推文。

这是我的代码示例:

private Status GetStatusById(string Id, TwitterContext ctx)
{
    ulong longId = Convert.ToUInt64(Id);
    var response = ctx.Status.Where(t => t.Type == StatusType.User &&
                                        t.ID == Id).ToList();
    return response.FirstOrDefault(s => s.ID == Id);
}

执行此方法后,我有一个异常:

LinqToTwitter.TwitterQueryException:对不起,该页面不存在

我确定该推文确实存在!

所以我的查询结果中没有我的推文,我需要做更多的查询,直到找到它。 但是我只想通过一个查询就可以做到这一点!

我正在使用像这样的搜索代码

ulong longId = Convert.ToUInt64(Id);
var searchResults =
                (from search in ctx.Search
                 where search.Type == SearchType.Search &&
                 search.MaxID <= longId &&
                 search.SinceID >= longId
                 select search)
                .SingleOrDefault();
return searchResults.Statuses.FirstOrDefault(s => s.ID == Id);

但是此查询需要搜索文本,而我没有它!

我想念什么吗?

有什么方法只能使用ONE查询通过ID查找tweet(status)吗?

在这种情况下,您将使用状态/显示查询,如v2.1中所示:

        var friendTweets =
            from tweet in twitterCtx.Status
            where tweet.Type == StatusType.Show &&
                  tweet.ID == Id
            select tweet;

或在v3.0中:

        var friendTweets =
            await
            (from tweet in twitterCtx.Status
             where tweet.Type == StatusType.Show &&
                   tweet.ID == Id
             select tweet)
            .FirstOrDefaultAsync();

您收到页面的原因不存在,因为您的查询是针对具有该ID的用户并且该用户不存在的。 这是此查询的文档:

http://linqtotwitter.codeplex.com/wikipage?title=Querying%20Statuses&referringTitle=Making%20Status%20Queries%20and%20Calls

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM