UPDATE: Please look at the date of this post. The information here is out of date and will become more out of date as time goes by. Twitter have addressed some of the issues I mention here, but the post will stay up and the DM cleaner tool still works.
Direct messaging is one of Twitter’s weakest features. On a platform that is fundamentally about public conversation, this is a one-to-one private messaging system – except it isn’t private – it’s just direct. The new Twitter has improved the messaging interface, but this is only superficial improvement; DMs are a flawed feature at a much lower level.
In descending order of interestingness and importance, here are a few things you may not know about Twitter DMs.
- All third party applications you authorize can read your DMs *
- Deleting a DM you’ve sent or received also deletes it from the other person’s account;
- Deleting DMs sends some Twitter clients into a confused frenzy;
- DMs don’t have a ‘reply to’ ID, so they can’t be threaded properly;
- The new Twitter interface only loads your most recent 100 messages;
- I’ve written a tool for backing up and deleting all your DMs – imaginatively titled DM Cleaner.
1. All third party applications you authorize can read your DMs
Think about it – if you can read your DMs on your iPhone, what do you think is happening? That’s an external application [that you've authorized] accessing your Twitter account. Twitter don’t offer the kind of fine-grained permissions that Facebook do – access is access – so any developer you authorize can read your DMs any time they like until you revoke that app’s privileges.
I have over 40,000 authentication keys for TwitBlock, with a revoke rate of a mere 3%. By authorizing a third party, you are trusting them not to do anything irresponsible with your data, and that includes messages you may consider private. Think about that the next time you DM your private email address, or worse. It’s called direct messaging, not private messaging
* UPDATE: Twitter have added finer grained access specifically to prevent unnecessary access to DMs.
2. Deleting a DM you’ve sent or received also deletes it from the other person’s account
DMs are basically just tweets – despite being shared between two people, you are both looking at the same copy. If you delete a received messaged it is removed from your friend’s sent items. If you delete a sent message it disappears from your friend’s inbox. However, some Twitter clients (like Twitter for iPhone) cache messages on the device, so you may not notice a message is missing for some time.
3. Deleting DMs sends some Twitter clients into a confused frenzy
Have you ever suddenly received an old message you’ve seen before out of the blue? I have (especially using Twhirl) and I’ve only just worked out why it happens. It’s other people deleting your DMs at their end.
Direct messages are requested from the Twitter API by either specifying the newest one you’ve already got (checking for new messages), or by specifying the oldest one you’ve already got (paging back through history). If a Twitter client specifies one of these with a DM that has been deleted you don’t get back what you expect.
4. DMs don’t have a ‘reply to’ ID, so they can’t be threaded properly
Not very interesting, but true nonetheless. When you reply to a DM, you are just sending a new message. This means while they can be ordered chronologically (i.e. linearly) there is no way to see exactly which message is a reply to which. Fine for light usage, but I’ve had frantic conversations that have resulted in overlaps, such that the chronological ordering isn’t accurate and it becomes a mess.
5. The new Twitter interface only loads your most recent 100 messages
This may be temporary, but the new site only provides access to the most recent 50 messages you’ve sent, and the most recent 50 messages you’ve received. These are stitched together into their individual conversation threads.
The new Twitter site has no “more” button to load older messages. There are non-trivial problems with a load more mechanic when the messages are displayed as conversation threads. Loading more doesn’t mean cascading more messages downwards as it used to; the new messages have to be loaded into the message threads already visible. This is more of a UI problem than a programming problem.
I fully expect to see API method changes to get around this problem.
6. I’ve written a tool for backing up and deleting all your DMs
I built DM Cleaner this week – it lets you back up full DM conversations to your email, and then trash them from Twitter permanently. New Twitter may have improved the direct messaging experience, but backing up and deleting is not really a feature that’s in Twitter’s interests to provide, so there you go – I’ve provided it.
This app is only hosted on my tiny demo site, and it uses quite a lot of juice, so don’t be surprised if it goes down. Also, it’s hungry and might use up your rate limit. Please feed back to me if something is broken, or if you’d like to see any new features.