截断的消息推文

Truncated message tweets

拜托!

我收到来自 LinqToTwitter 的推文,有些推文的文本似乎被截断了,部分文本后面有一个省略号。在某些情况下,搜索条件不会在文本中返回,因为它似乎在消息的未获得部分中。这是正确的?有没有办法得到消息的这个缺失部分?我已经看过其他帖子,但我不明白哪个参数允许获取全文。我正在使用 linqToTwitter 版本 4.1.0.

谢谢

 Dim twitterCtx As TwitterContext = New TwitterContext(twAuth)

 Dim Response As Search = Await (From search In twitterCtx.Search()
                                    Where search.Type = SearchType.Search _
                                    AndAlso search.SearchLanguage = "pt" _
                                    AndAlso search.Query = "Coronavirus").SingleOrDefaultAsync()

 Dim tweets As List(Of Status) = Response.Statuses()

 If Response IsNot Nothing AndAlso Response.Statuses IsNot Nothing Then
    For Each str As Status In tweets
        Console.WriteLine(str.StatusID.ToString() + " " + str.Text)
    Next
 End If

当 Twitter 将推文从 140 个字符扩展到 280 个字符时,他们需要在 API 中添加支持。这称为 Extended Mode,您需要向 LINQ 查询添加一个新过滤器,如下所示:

Dim Response As Search = Await (From search In twitterCtx.Search()
                                Where search.Type = SearchType.Search _
                                AndAlso search.SearchLanguage = "pt" _
                                AndAlso search.TweetMode = TweetMode.Extended _
                                AndAlso search.Query = "Coronavirus").SingleOrDefaultAsync()

注意 search.TweetMode 属性。我给它分配了 TweetMode.Extended 枚举,这意味着你现在得到了完整的 280 个字符。

完成后,您可能会查看 Text 属性 并惊讶地看到 Nothing。那是因为现在推文文本在 FullText 属性 中,您可以这样阅读:

Dim tweets As List(Of Status) = Response.Statuses()

If Response IsNot Nothing AndAlso Response.Statuses IsNot Nothing Then
    For Each str As Status In tweets
        Console.WriteLine(str.StatusID.ToString() + " " + str.FullText)
    Next
End If