skip to Main Content

why text field value is truncated and how can i get complete value.
As of now i am trying to get text field value like below

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"]!)
               }
       }
}

output is

RT @WarfareWW: #Russia/#India may hold launches of BrahMos cruise missiles from Su-30MKI vs sea/grnd trgts at the end of this year https://…

three dots at the end of line. i need to print complete text without truncation.

Twitter sample search result JSON Data

{
      "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
}

3

Answers


  1. The Twitter API has been changed recently, to support new rules regarding the 280 characters limit.

    1. To get the full text of the tweet, add parameter tweet_mode with value extended to your request parameters.
    2. Field text in the JSON response has been replaced by full_text

    More info here: https://dev.twitter.com/overview/api/upcoming-changes-to-tweets

    Login or Signup to reply.
  2. The status in this example is a retweet, and the text for retweets will be truncated to 140 characters even after including tweet_mode=extended. The full text of the original tweet is in the retweeted_status field of the JSON response. Here’s what you want:

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

    Keep in mind that you should still include tweet_mode=extended in your request.

    Login or Signup to reply.
  3. This worked for me!

     tweets = api.search_tweets(q=search_term, tweet_mode='extended', count=tweet_amount)
    
    for tweet in tweets:
        # check if the tweet is a retweet
        if tweet.full_text.startswith('RT @'):
        # if the tweet is a retweet, use the retweeted_status attribute
            full_text = tweet.retweeted_status.full_text
        else:
            full_text = tweet.full_text
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search