Many TWBlue users have been reporting, both on Twitter and in GitHub issues, that TWBlue will not authorize new accounts. This is the result of a change made by Twitter to how the authentication process works. This post will describe the cause of this problem and how to fix it. Please read this post before mentioning (@tw_blue2) on Twitter or opening a GitHub issue about this, as we have been getting many duplicate GitHub issues filed about this and it can be annoying to have to comment on every one of them with the solution. Feel free to share this post with your friends as well.
If you just want your TWBlue to work again and don't care about the technical details, feel free to skip past this section and go to the solution heading below.
Twitter made a change to the account authorization process that broke the method TWBlue, and probably some other clients, used to authenticate new accounts.
Previously, to authenticate new accounts, TWBlue opened a web server on your device. This server was on a random port and only stayed open to receive the access token that Twitter provides when you authorize your account for use with TWBlue. This was how you were able to just click "authorize app" on the Twitter website and get your account authorized without any action taken on your part. However, recently Twitter started to require callback URLs, URLs that Twitter sends access tokens to and that Twitter applications redirect to when they've been authorized to use your account, to be whitelisted. TWBlue's callback URL was "127.0.0.1", so it could send the Twitter access token to the web server opened on your device, but this is no longer allowed under Twitter's policies. Because of this, TWBlue had to revert to PIN authorization, where you grant access to TWBlue by entering a PIN code that Twitter provides to you when you authorize it to use your account.
At the moment, you need to download a snapshot to authorize a new account. You can download a snapshot, which will always be the latest version available, (here).
But I don't want to use snapshots!
That's fine. You can use the snapshot just to authorize your account. Here's how you can do this.
- Run TWBlue.exe from the snapshot's directory and authorize your account.
- Close TWBlue.
- Copy the "config" folder in the snapshot's directory to the TW Blue folder in your appdata folder. You can access this by opening the run dialog and typing "%appdata%\TW Blue" without the quotes.
- Run the stable version of TWBlue you have installed on your system. It should log in to your Twitter account and you can use the stable version again. You can delete the snapshot if you'd like, but you might want to keep it around in case your configuration gets corrupted and you need to reauthorize your account.