示例#1
0
        public OAuthToken GetAccessToken(OAuthToken reqToken, string verifier)
        {
            var client = new RestClient(_baseUrl)
            {
                Authenticator =
                    OAuth1Authenticator.ForAccessToken(ConsumerKey, ConsumerSecret.To <string>(), reqToken.Token, reqToken.Secret, verifier)
            };

            var response = ExecuteRequest(client, new RestRequest("oauth/access_token"));

            if (response.ResponseStatus != ResponseStatus.Completed || response.StatusCode != HttpStatusCode.OK)
            {
                throw new ETradeAuthorizationFailedException(
                          LocalizedStrings.Str3347Params.Put(response.StatusCode + ": " + response.StatusDescription));
            }

            var qs = HttpUtility.ParseQueryString(response.Content);

            var token  = qs["oauth_token"];
            var secret = qs["oauth_token_secret"];

            if (token.IsEmpty() || secret.IsEmpty())
            {
                throw new ETradeAuthorizationFailedException(LocalizedStrings.Str3348);
            }

            return(new OAuthToken(ConsumerKey, token, secret));
        }
示例#2
0
        public OAuthToken RenewAccessToken(OAuthToken accessToken)
        {
            var client = new RestClient(_baseUrl)
            {
                Authenticator =
                    OAuth1Authenticator.ForAccessTokenRefresh(ConsumerKey, ConsumerSecret.To <string>(), accessToken.Token, accessToken.Secret, null)
            };

            var response = ExecuteRequest(client, new RestRequest("oauth/renew_access_token"));

            if (response.ResponseStatus != ResponseStatus.Completed || response.StatusCode != HttpStatusCode.OK)
            {
                throw new ETradeAuthorizationRenewFailed(
                          LocalizedStrings.Str3349Params.Put(response.StatusCode + ": " + response.StatusDescription));
            }

            var qs = HttpUtility.ParseQueryString(response.Content);

            var newToken = qs["oauth_token"];

            return(newToken == null ? accessToken : new OAuthToken(ConsumerKey, newToken, qs["oauth_token_secret"]));
        }
示例#3
0
        public OAuthToken GetRequestToken()
        {
            if (ConsumerKey.IsEmpty() || ConsumerSecret.IsEmpty())
            {
                throw new ETradeException(LocalizedStrings.Str3345);
            }

            var client = new RestClient(_baseUrl)
            {
                Authenticator = OAuth1Authenticator.ForRequestToken(ConsumerKey, ConsumerSecret.To <string>(), "oob")
            };

            var response = ExecuteRequest(client, new RestRequest("oauth/request_token"));

            if (response.ResponseStatus != ResponseStatus.Completed || response.StatusCode != HttpStatusCode.OK)
            {
                throw new ETradeAuthorizationFailedException(
                          LocalizedStrings.Str3346Params.Put(response.StatusCode + ": " + response.StatusDescription));
            }

            var qs = HttpUtility.ParseQueryString(response.Content);

            return(new OAuthToken(ConsumerKey, qs["oauth_token"], qs["oauth_token_secret"]));
        }
示例#4
0
 public void SetAuthenticator(OAuthToken accessToken)
 {
     _authenticator = accessToken == null
                                                          ? null
                                                          : OAuth1Authenticator.ForProtectedResource(ConsumerKey, ConsumerSecret.To <string>(), accessToken.Token, accessToken.Secret);
 }