When I first launched GraphEdge, I wanted to use a modern approach to sign-up, authentication, and communication. I wanted GraphEdge to be embedded entirely in Twitter. I would use Twitter for sign-up (follow @GraphEdge and you’d be signed up). I would use it for authentication (use Twitter’s OAuth implementation to sign users into GraphEdge). I would use it for communication (direct messages and @name messages if users sign up via OAuth rather than by following @GraphEdge).
No need for a GraphEdge sign-up process, no need for a separate GraphEdge passward, no need to collect email addresses.
Then… good news! People are liking the application a lot! They’re signing up like mad. More often, they do so by signing up on the site where, as I said, we do not collect email addresses. To acknowledge that a user has signed up, we message them by sending an @name message. To let them know their first report is ready, we do so again. Then we update them on a user-defined frequency which defaults to 5 days.
To send @name replies/messages, we use a separate account from @GraphEdge… we use @GraphEdgeMsg. This is to keep @GraphEdge clear for important, relevant messaging. Over the past few weeks we have run into a problem, which is that there is a limit on the number of tweets you can post in a day. This means that we can only send so many messages to our users. My solution was to provision a second messaging account, @GraphEdgeMsg2, and switch between these accounts when one of them reached its daily limit. It’s a bandaid solution, because I can’t really do this indefinitely… or shouldn’t need to, anyway.
So… late last week Twitter suspended my alternate message account. I reached out to my latest contact in the Twitter API team, Doug Williams. I explained about the fully-Twitter philosophy. Reminded him that my app is not a spam, is a legitimate, popular, and growing application.
His response: “What you are doing is not how we intend the product to be used.”
I’m going to call “foul” on this… the entire Twitter product development roadmap has been guided by uses for the app that have emerged from the community… @name replies, use of #hashtags, and RTs. And tons of other stuff.
My only move from here—one which I had concluded I needed to do anyway, but still it’s annoying—is to start collecting email addresses from all my users, and use that, rather than Twitter itself, as my primary avenue for communication with my users. Why is Twitter happy to drive me and my users away from Twitter? They should keep me focused on Twitter, not on use-cases which facilitate the expansion of my app to Facebook (which, when it happens, will reduce my attention on Twitter to nearly zero)?
Twitter should create a white-list solution for legit apps like ours to go beyond consumer-level use-restrictions. My application accounts and my backend IPs are already white-listed, why not give my account extra status updates as well?
Update – email conversation with Doug Williams continues
I gotta say it feels like you’re pushing me further away from Twitter. This is going to force me to do my comm. via email. Is there no avenue for responsible, legitimate apps like mine to get extended usage status, much the way I have for my white-listed accounts/ips?
Doug Williams says:
I’m not trying to push you away, but tweets are meant to be public not for 1:1 communication which is what you are using them for. DMs however are meant for 1:1 communication. Whitelisted accounts have a raised DM limit (http://twitter.com/help/request_whitelisting).
Its a good point. And to be fair, I would hate to be in his shoes dealing with an annoying developer like me! He has to find a diplomatic way to say “go away, don’t bother me with these small potatoes” without having it sound like that! However, it ignores the fact that @username has become a form of 1:1 communication, and the proof of that is that you won’t necessarily see my @name messages in my public stream when you follow me. Twitter itself is treating @username as 1:1 communication, because their users are, else they wouldn’t filter these out.
So, diplomatic as Doug’s email is, it still rings false! And it drives my app toward email and away from Twitter.