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.
I found an old dm that I deleted a couple of months ago back in my inbox. I delete all my dm, how did this happen? Can I get rid of all dm off the web & twitter dbase for good?
@zakk it’s just saying that 1,600 is the API quota Twitter lets me get. You probably only have 83 messages.
is there a way i can go back to older messages then what comes up when i sync to my accoutn. It says 1600 messages but the tool is only pulling up 83. Am i supposed to allow something?
Thanks so much for this. Very, very useful little tool.
@shan I’m capturing as many as I can. The number 1,600 is a hard limit set by Twitter. 800 incoming, plus 800 outgoing is the max. Each batch can get 200 of each at a time, which explains the figure 400. I don’t know why the second batch isn’t working for you though – assuming you really do have over 400 messages. Do you get any error messages
I am so appreciative that you created this tool. Wondering if, by any chance, you have plans to update with version that can capture more messages?
I am puzzled also that the text says it is allowed to capture 1,600 messages, but only actually captured 400. Any advice?
Thank you.
ok I have scrolled further down to see I cannot retrieve any twitter dm’s however I was notified I had received a twitter dm and it always gave me part message in my Tiscali mail acct. however I put these into trash and have since deleted the trash are these retrivable
same here as message below I am desperate to retrieve my last 50 dm’s
I was wondering if there is a tool for recovering deleted direct messages
Good article.
A question – I have my personal twitter account and a test account because i wanted to test and see if the deletion of DMs really does remove from each account. I tried this on an iphone and it didn’t delete the DM i removed in the recipient folder (or, my test account). Why is this?
Also, if I deactive my twitter account, will the DMs remove after the 30 day period?
Great app! I am lucky to backup and read an important DM chain. Potential improvements: thread was displayed until 13 months ago, but earlier conversation is missed (not relevant for me). Only recent six months or so were highlighted and mailed. The six months before that I had to select manually and with some advanced copy/paste I got the complete storyline.
Yay! this is a momentous day. Been hunting for a way to export a DM chain that has hundreds of threads, and now I finally have it all. You’ve made me v happy!
Beca – your DMs are probably being cached by whatever you’re using to read them.
The app doesn’t seem to be working , says my old messages are deleted yet they still show on my twitter?
Justin – the only way you’d be able to recover a deleted DM is if some client program you use has cached a copy of it. Once it’s deleted it’s not available via the Twitter API, which is the only access any of us outside of Twitter have
Is there any way to recover deleted DM’s? I know that the messages are deleted from your inbox but they are also stored in the twitter database. Such as if something were to happen like someone disappeared the cops would be able to get a copy of that person’s DM deleted or not. Do we have that same privileged?
Tim, this has been a very helpful article. I have a question then… I had asked a friend of mine if he was getting my DM’s. I noticed that on my iPhone, that the messages that I sent to him would be missing, and the newest messages would be here. Does this mean that he was deleting messages from his iPhone and lying to me about not getting my messages. I had all of the messages that he sent me up to a certain point, but my messages in a two hour conversation were missing. So, was my friend lying to me about not deleting messages? Can you e-mail me if I am right and to better explain? Thank you!
Tim, thank you for the great app, but I have one question – I can get only 1600 DM through it and I need’em all (I think around 5000-6000). Can you make higher the limit of downloaded DM or I should delete’em by parts and older will download instead them? I don’t want to delete – maybe sometime later twitter will make some access to all DM (of course I can hardly believe in it), but if it is the only way to get’em all, I’ll do it. It’s very important for me…
(And I wrote on twitter to you too)
Thank you, waiting for the answer,
Nikita
thank you very very very much for your app and this post!
Care to share the code of “dm-cleaner”? The words “demo” and “can go down” are so depressing… ;)
Regarding description as “Private” – Twitter do use that word in their support text – twice.
http://support.twitter.com/entries/14606-what-is-a-direct-message-dm
I agree that the permissions granted to apps should be more granular – so that if I authorize something to send a tweet on my behalf it should not mean that it can read content as well.
An extra thought – if someone sends an abusive DM and then deletes it after the recipient reads it … then it disappearing from the recipient inbox is unlike SMS and email. The evidence has gone (at least for the parties directly concerned). Does Twitter keep a copy?
@ Gemma – yes, ironic as that is, you are quite correct. authorizing third parties is a trust issue, which is why it’s important people know the facts.
“…except it isn’t private – it’s just direct.” Well stated. No paranoia or DM fear-mongering (*smile*)…just a factual and important admonition. Many have become too comfortable in the social media arena, perceiving a level of privacy that just simply doesn’t exist. (That is, unless one knows ways to work around the system!)
Thanks for the reminder. Cheers!
Hi Tim .. does this also mean YOU get to read our DMs if we authorise DM Cleaner? ;)
@ peter many thanks indeed, and I shall check out the whacker app too
@ musk you’re correct, it doesn’t. but a company’s responsibility doesn’t begin and end with disclaimers. The majority of users assume they are private, therefore it should be made clearer. If Twitter won’t do that, I will.
And where does it say that DMs are private?
well done mate. decent, interesting read. I find Cortesi’s Dm Whacker quite good – but – deleters aside – Its been a while since I read a tech post – start to end.
best
peter
If Twitter want to go mainstream, they need to address this. Growing up cuts both ways.
Thats a really good point that as Twitter only has 2 types of auth, Read-only and Read/Write, that any app can read DM’s which are private for a reason.
So your app has come in very handy for deleting about 1200 DM’s that were stored up.
Ollie