I hereby proclaim that I now officially hate Twitter. The usability of that microblogging "service" is absurd to put it mildly. It's beyond me, why people would even want to use it, let alone, feel the need to tell the world about when they get up, eat dinner, and go to bed again. Making heads or tail out of individual tweets, without knowing their context, is a horse of a different color altogether. But does that mean that Drupal's twitter module (v6x-3.0-beta3) has to be equally braindead in design!?
All I wanted to do was to replicate a list of nodes on a (site wide) Twitter account. That is, whenever a user creates a node of a certain type, Drupal should announce the fact on Twitter for all those people who prefer a braindead webservice over an RSS reader.
In principle, one should think this to be a simple task: install the module, configure, test, done. However, if the name of the module already starts with "twit", one should probably expect things to go downhill from the very beginning.
The Twitter module does not really come with a lot of stuff to configure. In fact, configuration even looks pretty straight forward. Just supply your Oauth credentials and check the node types that should be announced on Twitter.
After setup, do a testpost and discover that (literally) nothing happens! The node gets created, but no announcement on Twitter is made. More importantly, no entry is made in the logs either, explaining, why no announcement was made.
I hate silent fails! Ok, so what do the module's docs have to say about the situation? Ah, right, nothing as well! No README.TXT, no INSTALL.TXT, no handbook whatsoever to speak of. We got some 340 open issues in the queue, though! Half of them bug reports! Joy!
After wasting several hours on the issue queue and various websites, I give up and finally sift through the source code, just to discover:
In order to make Drupal post it's announcements, one user (does not matter which one) has to associate his Drupal account with the Twitter Account in question (done via
/user/1/edit/twitter in case of the admin account) and mark that association as "global". Finally, you have to adjust user permissions accordingly.
Thanks for not documenting that!