使用TweetSharp检索推文时遭遇文本截断问题求助
解决TweetSharp获取推文文本被截断的问题
嘿,我之前也踩过这个坑!你拿到的推文文本被截断,本质是因为Twitter v1.1 API默认只返回截断后的短文本(旧版140字符限制的遗留逻辑),要获取完整内容得调整请求参数才行。
问题根源
Twitter API对超过140字符的推文,默认会把文本截断到140字符并在末尾加…,如果想要完整内容,必须在请求时明确指定TweetMode为Extended。
修改后的代码示例
你只需要给SearchOptions添加TweetMode参数,并且读取推文时用FullText字段代替Text字段:
public List<Tweets> Search() { // 顺便提一句,原代码方法名拼写是serarch,建议改成Search更规范 List<Tweets> tlist = new List<Tweets>(); var service = new TwitterService("ck", "cs"); service.AuthenticateWith("tk", "ts"); var options = new SearchOptions { Q = "#sexualassault", TweetMode = TweetMode.Extended // 添加这一行,指定获取完整推文 }; var tweets = service.Search(options); foreach (var tweet in tweets.Statuses) { if (tlist.Count == 5) break; // 假设你这里是要取前5条推文 // 改用FullText获取完整内容 tlist.Add(new Tweets { // 替换成你的Tweets类对应的文本属性,比如Text = tweet.FullText Text = tweet.FullText }); } return tlist; }
额外小提醒
- 确保你的TweetSharp版本支持
TweetMode枚举,如果是旧版本可能需要更新包。 - 对于转发的推文,完整内容可能在
RetweetedStatus.FullText里,遇到转发时可以这样处理:var fullText = tweet.RetweetedStatus != null ? tweet.RetweetedStatus.FullText : tweet.FullText;
内容的提问来源于stack exchange,提问作者Yankai He
相关产品推荐
相关产品推荐

