我正在使用Linq2Twitter在我的 ASP.net Web 窗体应用程序中返回最近的用户推文
var tweets = await
(from tweet in ctx.Status
where (
(tweet.Type == StatusType.User)
&& (tweet.ScreenName == screenName)
&& (tweet.ExcludeReplies == true)
&& (tweet.IncludeMyRetweet == false)
&& (tweet.Count == 10)
&& (tweet.RetweetCount < 1)
)
select tweet)
.Take(count)
.ToListAsync();
这似乎运行良好,我得到了预期的 Json 返回,但是......
当我尝试构建原始推文的链接时......
“https://twitter.com/” + ScreenName + “/status/” + data.StatusId
我收到“抱歉,页面不存在错误”。
经调查,返回的 StatusId 似乎不正确。例如返回的StatusId为:
500244784682774500
当实际推文指的是:
500244784682774528
换句话说,在本例中,StatusId 似乎漂移了 28。
任何人都可以阐明正在发生的事情/我做错了什么吗?
谢谢。
最佳答案
经过一些调试,我发现返回到 LinqtoTwitter 应用程序的 ID 是正确的,问题要么出现在 JSON 转换器中,要么出现在 JavaScript 本身无法处理无符号整数 ID 值中。
解决方案是根据返回的结果创建一个简单的 View 模型(使用针对 LinqToTwitter.Status 对象的扩展方法)并将其传递给客户端而不是整个数据图。
关于Twitter 状态 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25330792/