public Map<String, Object> obtainRequestToken(SocialLoginConfig config, String callbackUrl) {

        String endpointUrl = config.getRequestTokenUrl();
        try {
            SocialUtil.validateEndpointWithQuery(endpointUrl);
        } catch (SocialLoginException e) {
            return createErrorResponse("TWITTER_BAD_REQUEST_TOKEN_URL", new Object[] { endpointUrl, TwitterLoginConfigImpl.KEY_requestTokenUrl, config.getUniqueId(), e.getLocalizedMessage() });
        }

        // Create the Authorization header string necessary to authenticate the request
        String authzHeaderString = createAuthzHeaderForRequestTokenEndpoint(callbackUrl, endpointUrl);
        if (tc.isDebugEnabled()) {
            Tr.debug(tc, "Authz header string: " + authzHeaderString);
        }

        return executeRequest(config, requestMethod, authzHeaderString, endpointUrl, TwitterConstants.TWITTER_ENDPOINT_REQUEST_TOKEN, null);
    }
public Map < String , Object > obtainRequestToken ( SocialLoginConfig config , String callbackUrl ) { String endpointUrl = config . getRequestTokenUrl ( ) ; try { SocialUtil . validateEndpointWithQuery ( endpointUrl ) ; } catch ( SocialLoginException e ) { return createErrorResponse ( "TWITTER_BAD_REQUEST_TOKEN_URL" , new Object [ ] { endpointUrl , TwitterLoginConfigImpl . KEY_requestTokenUrl , config . getUniqueId ( ) , e . getLocalizedMessage ( ) } ) ; } String authzHeaderString = createAuthzHeaderForRequestTokenEndpoint ( callbackUrl , endpointUrl ) ; if ( tc . isDebugEnabled ( ) ) { Tr . debug ( tc , "Authz header string: " + authzHeaderString ) ; } return executeRequest ( config , requestMethod , authzHeaderString , endpointUrl , TwitterConstants . TWITTER_ENDPOINT_REQUEST_TOKEN , null ) ; }
Invokes the {@value TwitterConstants#TWITTER_ENDPOINT_REQUEST_TOKEN} endpoint in order to obtain a request token. The
request is authorized for the consumer key set by the class and the callback URL provided to the method. The appropriate
consumer key must be set before invoking this method in order to obtain a request token for the correct consumer. For more
information, see {@link https://dev.twitter.com/oauth/reference/post/oauth/request_token}.

@param config
@param callbackUrl
@return