A friend asked me to investigate why he was unable to use any Twitter plugins with his blog, but only on a specific server. After Googling around a little, I saw solutions that ranged from disabling PHP’s oauth module, to updating server time. It turns out that none of these fixed the problem – the issue was lack of SSL support for Curl.
His server is running cPanel, and although Curl support was enabled, the Twitter API calls all use HTTPS. The fix was to use EasyApache, and check the box next to curlssl as well as curl. A recompile of Apache and PHP, and boom. The plugin started working. It would be really great if the plugin would mention lack of SSL support in curl, rather than dying with a generic “Couldn’t authenticate” message. There was nothing in the PHP error log.