/// <summary> /// Authorize a request token /// </summary> /// <param name="oauthToken">The request token</param> /// <returns>An object containing a response elements (verifier code and granted)</returns> private TokenVerification InlineAuthorize(IOAuthToken oauthToken) { TokenVerification retVal = null; if (oauthToken != null) { RestClient restClient = new RestClient(this.OAuthEndpoints.ServiceUri); RestRequest request = new RestRequest(this.OAuthEndpoints.AuthorizationUri, Method.GET); request.AddParameter(Constants.TokenParameter, oauthToken.Token); var response = restClient.Execute(request); var qs = HttpUtility.ParseQueryString(response.Content); string verifierCode = qs[Constants.VerifierCodeParameter]; string grantedAccessParameter = qs[Constants.GrantedAccessParameter]; bool grantedAccess = false; if (!string.IsNullOrWhiteSpace(grantedAccessParameter)) { grantedAccess = bool.Parse(grantedAccessParameter); } if (!string.IsNullOrEmpty(verifierCode)) { retVal = new TokenVerification(); retVal.VerifierCode = verifierCode; retVal.Granted = grantedAccess; } } return(retVal); }
/// <summary> /// Get an access token without using a callback url. This only works for the auto grant path.(which is only enabled for Vistaprint users /// </summary> /// <param name="realm"></param> /// <returns>An access token and secret</returns> public IOAuthToken GetInlineAccessToken(Realm realm) { DefaultOAuthToken retVal = null; DefaultOAuthToken requestToken = this.GetRequestToken(realm, Constants.InlineCallback) as DefaultOAuthToken; if (requestToken != null && requestToken.IsValid()) { TokenVerification tokenVerification = this.InlineAuthorize(requestToken); if (tokenVerification != null) { retVal = this.ExchangeRequestTokenForAccessToken(requestToken, tokenVerification.VerifierCode) as DefaultOAuthToken; } } return(retVal); }