No more Twitter widget in Graphene 1.9

With Twitter v1 API fully retired, implementing oAuth authentication to keep Graphene theme’s Twitter widget functioning has fallen outside the scope of a theme.

It’s sort of like that TV series “Revolution“, where one day all of a sudden all electrical devices stopped functioning. In our case, the Twitter widget in all sites using Graphene theme stopped working, in a single day that was yesterday.

And no, it wasn’t all of a sudden. Twitter has announced the planned retirement of its v1 API since late last year, to be replaced with v1.1 API.

The major difference between the two versions of APIs is that v1.1 requires all requests to Twitter to be authenticated using oAuth. This means that we can no longer fetch tweets that are otherwise publicly available as easily as we have been using the v1 API.

With this change, including the Twitter widget within the theme has suddenly become much more complex due to the authentication layer. Primarily due to this we have decided to remove the feature from the upcoming Graphene 1.9. If we were to retain the Twitter widget in the theme, we would have to program an authentication flow with Twitter so that the theme can obtain the authorisation required to make requests via the new API. Each website using the theme will then have to go through this authorisation process.

While we can certainly implement it, we feel that it is out of the scope of a theme to provide for such elaborate process. A theme is, after all, first and foremost about presentation rather than functionality. In this case, we believe that that process is better off being performed by a plugin. It is also because we are already in the beta cycle of Graphene 1.9 that it is too late to make any significant code changes to the theme at this point.

If you must have the Twitter widget functionality, we would recommend the Rotating Tweets plugin. It supports the new Twitter API, and more or less provide similar functionality to the theme’s Twitter widget. There is also Twitter’s own Embedded Timelines if you want to go plugin-free.