Twitter API 1.1 and RSS XML feedsThe shutting down of Twitter’s API v1 is not news to anyone who works with the API regularly and it has been coming for a while now (it was officially shut down completely on June 11). However despite seeing the warnings etc, judging by many threads online, I am not the only one to find several dead feeds within Websites this week.

The underlying issue for me is that the new v1.1 of the Twitter API does not support/provide XML/RSS feeds any more. In addition there is a new authentication protocol in place so that we can no longer simply call https://api.twitter.com/1/statuses/user_timeline.xml?screen_name=SCREENNAME as it results in:

<errors>
<error code=”68″>
The Twitter REST API v1 is no longer active. Please migrate to API v1.1. https://dev.twitter.com/docs/api/1.1/overview.
</error>
</errors>

So how do we fix this? The best thing to do would probably be to update your application to accept the provided JSON format (instead of XML/RSS) and to do this you will need setup and authorize a new Twitter application, sending the proper OAuth credentials with your request (you can read more here).

Yada yada… I just want my RSS/XML back

Maybe this whole API thing is confusing or if you are like me and are responsible for some legacy applications that don’t lend themselves easily to adaption. For me this includes several ColdFusion sites built 5 to 7 years ago. After some research I came across a method of using Google scripts to pull the JSON request from Twitter and convert it to RSS and it proved to work well. The directions are easy to follow and can be found at How to Get RSS Feeds for Twitter with the new API on the Digital Inspiration blog. The result is a Google Drive URL that allows you to pull the timeline of a Twitter user using a URL variable.

I was using the XML feeds previously which included several more data nodes than the RSS feed that this method results in. In particular I am missing the user’s avatar and hash tags used. However because we are talking legacy apps here, I have worked around these issues.