【问题标题】:Twitter api text field value is truncatedTwitter api 文本字段值被截断
【发布时间】: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 更新了我的问题

标签: ios json swift api twitter


【解决方案1】:

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

  1. 要获取推文的全文,请将带有值extended 的参数tweet_mode 添加到您的请求参数中。
  2. 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

【讨论】:

    猜你喜欢
    • 2013-12-06
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    • 2014-05-20
    • 2015-11-21
    • 1970-01-01
    • 2020-08-02
    • 2018-09-17
    相关资源
    最近更新 更多