doOAuth :: Application
       -> (String -> IO String) -- ^ IO action to display auth URL and ask verifier
       -> IO Token
doOAuth app asker = runOAuthM (fromApplication app) $ do
    -- get request token
    signRq2 HMACSHA1 Nothing (fromJust . parseURL $ reqURL) >>= oauthRequest EnumHttpClient
    -- display authorization URL to user, get verifier from user
    askAuthorizationBy toAuthURL asker
    -- get access token
    signRq2 HMACSHA1 Nothing (fromJust . parseURL $ accURL) >>= oauthRequest EnumHttpClient
    getToken
doOAuth :: Application
       -> (String -> IO String) -- ^ IO action to display auth URL and ask verifier
       -> IO Token
doOAuth app asker = runOAuthM (fromApplication app) $ do
    -- get request token
    signRq2 HMACSHA1 Nothing (fromJust . parseURL $ reqURL) >>= oauthRequest EnumHttpClient
    -- display authorization URL to user, get verifier from user
    askAuthorizationBy toAuthURL asker
    -- get access token
    signRq2 HMACSHA1 Nothing (fromJust . parseURL $ accURL) >>= oauthRequest EnumHttpClient
    getToken
doOAuth app asker = runOAuthM (fromApplication app) $ do
    -- get request token
    signRq2 HMACSHA1 Nothing (fromJust . parseURL $ reqURL) >>= oauthRequest EnumHttpClient
    -- display authorization URL to user, get verifier from user
    askAuthorizationBy toAuthURL asker
    -- get access token
    signRq2 HMACSHA1 Nothing (fromJust . parseURL $ accURL) >>= oauthRequest EnumHttpClient
    getToken