code: public Token getAccessToken(Verifier verifier) {
  		OAuthRequest request = new OAuthRequest(api.getAccessTokenVerb(), api.getAccessTokenEndpoint());
  
  		// Add the oauth parameter in the body
  		request.addBodyParameter(OAuthConstants.CLIENT_ID, config.getApiKey());
  		request.addBodyParameter(OAuthConstants.CLIENT_SECRET, config.getApiSecret());
  		request.addBodyParameter(OAuthConstants.GRANT_TYPE, AUTHORIZATION_CODE);
  		request.addBodyParameter(OAuthConstants.CODE, verifier.getValue());
  		request.addBodyParameter(OAuthConstants.REDIRECT_URI, config.getCallback());
  
  		if (config.hasScope()) {
  			request.addBodyParameter(OAuthConstants.SCOPE, config.getScope());
  		}
  
  		if (config.getDisplay() != null) {
  			request.addBodyParameter(OAuthConstants.DISPLAY, config.getDisplay());
  		}
  
  		if (config.getRequestProxy() != null) {
  			request.setProxy(config.getRequestProxy() );
  		}
  
  		Response response;
  		try {
  			response = request.send();
  		} catch (IOException e) {
  			throw new OAuthException("Could not get access token", e);
  		}
  
  		return api.getAccessTokenExtractor().extract(response.getBody());
  	}
docs: {@inheritDoc}