Twitter’s authentication changes and what it means to you

Yesterday Twitter announced some changes to their authentication and permissions process. On the face of it the changes are actually a good thing, but unfortunately it will require some action by user’s of 3rd Party Twitter Clients.

Background

For sometime now Twitter has offered 3rd Party Clients two ways of authenticating your details against their system.

The first way is called xAuth which just requires you to enter your user name and password into the app and in return we do some magic in the background to exchange that for unique tokens which in turn logs you in, but the app doesn’t keep your password.

The second way is called OAuth. OAuth requires you to visit Twitter’s web site in a web browser, which shows you a list of permissions the app will have to your account and then you’ll be redirected back to your app.

Whilst xAuth is a much neater and elegant system we’ve never been happy with it as it still requires you entering your password to a client who you are simply trusting not to abuse it.

What’s Changing?

In Mid June, Twitter are going to now require apps that wish to have access to a user’s Direct Messages to firstly use the OAuth process only and secondly re-authenticate users.

How this affects Tweetings

With regards to requiring OAuth only, if you are using Tweetings for iPhone, iPad and Chrome then we don’t need to make any code changes at all as we already use OAuth authentication.

Tweetings for Mac does use xAuth and will require us to push an update to the Mac App Store before the mid-June deadline so that you can keep access to your Direct Messages.

The good news is that we are in final testing of migrating Tweetings for Mac from xAuth to OAuth and we should be good to go soon.

The second part of the changes is where you come in. Unfortunately because of the permission changes Twitter is making, they are requiring all apps that need Direct Message access to re-authenticate all users. We can’t do this ourselves.

This requires you to re-login all of your accounts between now and the mid-June deadline in order to keep your Direct Messages and Direct Message push notifications.

What happens if I don’t re-login?

From our understanding pretty much everything will work just fine EXCEPT you won’t be able to make use of Direct Messages until you do relogin.

How do I do this in Tweetings

Tweetings for iPhone and iPad

  • If you have more than one account then this is pretty straight forward. Simply go to the accounts screen (by tapping your screen name at the top of the main timeline).
  • Swipe to delete an account you aren’t currently logged into
  • Tap ‘Add Account’ and re-log back into that same account
  • Switch to that account and then do the same for the next account

If you only have one account you have two options

  • You’ll either have to delete Tweetings and re-install it from the App Store. Don’t worry this is free because you’ve already purchased it before.
  • You can alternatively create a temporary second account on Twitter so that you can delete your primary account without deleting the app.

Note: if you try to authenticate two accounts quickly after one another, when presented with the login page on Twitter’s website you may still be logged into the last account. Tap your icon at the top right of the screen and then logout.

Tweetings for Chrome

  • Tap the logout X button at the top right of the popup window
  • Then tap the Tweetings icon and re-login again

Tweetings for Mac

  • Do not perform the delete/relogin process unless you have the forthcoming version 2.0.4 from the Mac App Store
  • If you have 2.0.4 then go to the ‘Tweetings’ menu at the top left of the main menu bar
  • Select ‘Accounts’
  • Delete any accounts you wish to by selecting them and pressing the ‘-‘ button
  • Click the ‘+’ button and a window will open and authenticates you with Twitter over OAuth

tl;dr if you don’t re-log in to your accounts in Tweetings before mid-June you’ll loose access to Direct Messages and Direct Message push notifications

Update: Tweetings for Mac 2.0.4 is now available from the Mac App Store with oAuth authentication.

Update 2: Twitter’s cut off for moving to oAuth is now the end of June

Instant Push Notifications

Ever since version 1.0 of Tweetings for iPhone we’ve offered a push notification service at no extra cost, other than the original cost to download the App.

This has previously been delivered by us regularly polling your accounts and notifying you of new mentions and direct messages. Because that polling is scheduled, we have lots of accounts to monitor and it all takes a lot of server resources, bandwidth and money we’ve always had a short delay on being able to deliver messages. Sometimes as short as 30 seconds, sometimes 5 mins or more (which is less than ideal).

Twitter offers a number of Streaming solutions, one of which is still a beta product, called Site Streams. So long as you have authorised Tweetings we can monitor your mentions and direct messages and send you a push notification the very instant they arrive!

This is a huge change to our service and one we hope you’ll love.

I’m not getting the push notifications?

If you are an existing user you’ll be migrated into the new system automatically the next time you download a new mention INSIDE Tweetings, that means you have to load Tweetings and check your mentions! Then once an hour we will know you’re registered for instant push and add you to the service.

If you are a new user, the first time you load Tweetings and download your tweets, you may have to wait up to an hour to get your first push notification. After that they will be instant.

Announcing User Streams for Tweetings for iPhone and iPad

Since version 2.0 of Tweetings for Mac, users have been enjoying the addition of User Streams.

However coming very soon to both Tweetings for iPhone and Tweetings HD for iPad, we are very pleased to announce the support of User Streams for BOTH these devices!

Pull down refresh is so 2010… 2011 is all about streams! This great feature will be available in Tweetings for iPhone v4.0 and Tweetings HD v3.0. Just connect to a WiFi network and the tweets start streaming. New tweets will show up instantly, no need to ever refresh again.

Your home timeline, mentions and direct messages will all automatically update so long as you are connected over WiFi. Don’t worry if you leave the house and/or your WiFi connection drops, we’ll simply disconnect from the stream automatically and you can carry on as usual so you don’t waste your cell data limits.

When?

Well both updates have already been submitted to Apple for approval, we’ve been testing it with a great team of beta testers who’ve been pulling it apart for the past few weeks and it should be with everyone else in a week or two!

How do I enable it?

By default Tweetings for iPhone and iPad will not have this enabled.  You can turn this on yourself in both apps by going to ‘Settings’ (in Tweetings for iPhone this is under the ‘More’ button at the bottom of the screen), then scroll to the second titled ‘Display’, then tap ‘Advanced’ and then turn on ‘Streaming over WiFi’.

You’ll then need to restart Tweetings, this means tapping the home button to go back to the Springboard, Double Tap the Home button to get to the multitasking tray, tap and hold the Tweetings icon until the icons shake, tap the red close icon.  Load Tweetings as normal.

Tweetings Sync

Tweetings Sync

What is Tweetings Sync?

Simply put, Tweetings Sync, when enabled automatically keeps unread tweets on your main timelines in sync between any platform or device you have Tweetings installed on.  From iPhone to iPad to Chrome to Mac, you never have to read the same tweet twice!

What Devices is Tweetings Sync Available On?

Tweetings Sync is available on the following platforms and versions

  • iPhone version 3.6.3 and higher
  • iPad version 2.6.4 and higher
  • Mac version 1.1.0 and higher
  • Google Chrome Extension version 1.6.0.5 and higher

How do I enable it?

Tweetings Sync is not automatically enabled. If you don’t need it or don’t use Tweetings on more than one platform or device, then there is also no need to enable it.

However if you do then you can enable it as follows

  • iPhone – go to ‘Settings’ -> ‘Display’ -> ‘Advanced’ -> ‘Tweetings Sync’
  • iPad – go to ‘Settings’ -> ‘Display’ -> ‘Advanced’ -> ‘Tweetings Sync’
  • Mac – go to the main ‘Tweetings’ menu next to the Apple symbol at the top left -> ‘Preferences’ -> ‘Sync’
  • Chrome – go to the ‘Options’ icon at the top right of the popup -> ‘Tweetings Sync’

How does it work… the detail

Whenever you refresh a timeline, or get new tweets, or send a tweet you may get new tweets downloaded.  We take the unique identifier of that first, top, tweet of your home, mentions and DM timelines and sync them back you the external Tweetings System.

When you load on another device or platform, we grab what that identifier was, mark everything below it as read and then scroll you to exactly that position.

Please note we take the top tweet in a given timeline, not where you may have scrolled to, so when you leave one client or platform and go to another we assume everything from the previous client was read.


What is gap detection?

Tweetings for iPhone and for iPad now contains a new feature called Gap Detection.

What is this feature? Well a first a bit behind the scenes of the Twitter API and Tweetings.

When you load Tweetings, it will take the internal id number of the top tweet in your timeline, send it to Twitter and ask for all new Tweets since that id.  The problem is this call can only request a maximum of 200 tweets.  Therefore if you haven’t loaded Tweetings for sometime you are likely to have more than 200 unread tweets with no way of getting them through the app.

This is where gap detection comes in.  Tweetings intelligently works out where there might be a possible break in the timeline and we represent it as a tear.

Tap on that tear and Tweetings will go off and retrieve another 200 missing Tweets to try to fix the gap, you might actually have another gap underneath that too!