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
【问题讨论】:
你能证明我们你得到了正确的字符串作为响应,在网络或其他东西中显示请求响应UILabel
s 将截断文本,如果它们是固定的高度和宽度,您可能还需要设置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 完整存档搜索中排除转发和回复