some actual code (I put this in my rake task / data migration):
tweet = Twitter.status(source_id, {include_entities: "1"})
entities = Twitter::Extractor.extract_entities_with_indices(tweet.text)
# returns a bunch of entities
# some of these have a key :url, some have :screen_name, some :hashtag
# replace :url entities with matching entities from tweet.urls
entities.each do |oldEntity|
next unless oldEntity.keys.include? :url
tweet.urls.each do |newEntity|
newEntity = newEntity.attrs
next unless newEntity["url"] == oldEntity[:url]
oldEntity[:expanded_url] = newEntity["expanded_url"]
oldEntity[:display_url] = newEntity["display_url"]
end
end
linked_text = Twitter::Autolink.auto_link_entities(tweet.text, entities)
I haven’t ironed out all the bugs yet because I hit the 150 requests/hr limit 