Added basic support for using OAuth2 bearer tokens. Added new constructors to com.createsend.General to allow instantiation with either an API key or an access token and refresh token. This pattern will also be applied to all other areas.
Refactored configuration and authentication so that API key cannot be stored in the config.properties file and so that all API classes expect an AuthenticationDetails object when instantiated (either OAuthAuthenticationDetails or ApiKeyAuthenticationDetails.
Added com.createsend.General.getAuthorizeUrl().
Tiny typo.
Added CreateSendBase class as a base for all API classes. Implemented CreateSendBase.refreshToken() which allows refreshing of OAuth tokens from any API objects. Also implemented static method com.createsend.General.exchangeToken() for exchanging an OAuth code for an access token.
Added ExpiredOAuthTokenException which is thrown if an API request is made with an expired access token. Added an example to the README of how to use CreateSendBase.refreshToken().
Fixed code sample for refreshing access tokens in README.
Added v3.0.0 version history entry including instructions for migrating to the next major version. Also added more detailed code sample under ## Basic usage section of README.
Fix in catch block of README code sample for refreshing token.
Added links to API auth docs and example app gist.
Added support for throwing exceptions correctly when the Campaign Monitor OAuth receiver responds with an error.
com.createsend.General.getAuthorizeUrl() should not expect clientSecret argument.
Version 3.0.0.
History entry for version 3.0.0.