Twitter api 文本字段值被截断

Posted

技术标签:

【中文标题】Twitter api 文本字段值被截断【英文标题】:Twitter api text field value is truncated 【发布时间】:2016-12-07 15:41:09 【问题描述】:

为什么文本字段值被截断以及如何获得完整值。 截至目前,我正在尝试获取如下文本字段值

do 
       if let responseObject = try NSJSONSerialization.JSONObjectWithData(response, options: []) as? [String:AnyObject],
           arrayStatuses = responseObject["statuses"] as? [[String:AnyObject]] 
               let arrTweets:NSMutableArray = NSMutableArray()
               for status in arrayStatuses 
                   let text = status["text"]!
                   print(status["text"]!)
               
       

输出是

RT @WarfareWW:#Russia/#India 可能会在今年年底从 Su-30MKI 与 sea/grnd trgts 发射 BrahMos 巡航导弹 https://...

行尾的三个点。我需要打印完整的文本而不被截断。

Twitter 示例搜索结果 JSON 数据


      "created_at": "Mon Aug 01 08:07:43 +0000 2016",
      "id": 760024194079916032,
      "id_str": "760024194079916032",
      "text": "RT @khalidasopore: #KEXIT #KASHEXIT #KashmirKillings #Inida #Pakistan Just trend it my dear Indians to save #Kashmir from Pak Goons https:/…",
      "truncated": false

【问题讨论】:

你能证明我们你得到了正确的字符串作为响应,在网络或其他东西中显示请求响应 UILabels 将截断文本,如果它们是固定的高度和宽度,您可能还需要设置label.numberOfLines = 0 - 否则按照@Lu_的评论可以提供一个json示例。 这不仅仅是 UILabel 的问题,甚至 print() 也会截断字符串 为我们提供一些证明,在 web 中显示 json 什么的,保存到变量是转换字符串是不正常的 具体来说是 twitter hastag search api 响应,用 json 更新了我的问题 【参考方案1】:

Twitter API 最近已更改,以支持有关 280 个字符限制的新规则。

    要获取推文的全文,请将带有值extended 的参数tweet_mode 添加到您的请求参数中。 JSON 响应中的字段 text 已替换为 full_text

更多信息在这里:https://dev.twitter.com/overview/api/upcoming-changes-to-tweets

【讨论】:

在 Java Spark Streaming 应用程序中,我应该在哪里设置 tweet_mode 参数?我有一个FilterQuery,它与听众一起工作。 @Ely 不知道为什么 Twitter 没有将其包含在其官方 API 文档中。感谢 Stack Overflow。 这有帮助,我找回了 full_text 属性,但对我来说,它仍然在大约 210 个字符处被截断。 官方文档这么过时真是可笑。谁用“博客文章”更新他们的 API 文档? 非常感谢!我试图为 Twitter 机器人实现垃圾邮件过滤器功能,并深入了解我没有从 Twitter API 获得整个文本响应的事实。实施这一点使一切正常。【参考方案2】:

本例中的状态为转推,即使包含tweet_mode=extended,转推的文本也会被截断为 140 个字符。原始推文的全文在 JSON 响应的 retweeted_status 字段中。这就是你想要的:

let text = status["retweeted_status"]["full_text"].

请记住,您仍应在请求中包含 tweet_mode=extended

【讨论】:

以上是关于Twitter api 文本字段值被截断的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Twitter API 完整存档搜索中排除转发和回复

使用 Python 从 Twitter 流 API 中提取特定的 JSON 字段

为啥twitter API在文本末尾添加url

十进制值被 to_f 截断

通过正则表达式检索值时该值被截断

Safari Web Inspector - 长字符串值被截断