我正在我的项目中使用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);
但是这个查询需要搜索文本而我却没有!
我错过了什么吗?
有没有办法只使用一个查询通过ID查找推文(状态)?
答案 0 :(得分:1)
在这种情况下,您将使用状态/显示查询,如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且该用户不存在的用户。以下是此查询的文档: