public string GetToken() { if (!_authenticationToken.HasToken() || _authenticationToken.HasExpired()) { string url = _marketoInstanceUrl + "identity/oauth/token?grant_type=client_credentials&client_id=" + _marketoClientId + "&client_secret=" + _marketoClientSecret; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.ContentType = "application/json"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream resStream = response.GetResponseStream(); StreamReader reader = new StreamReader(resStream); string json = reader.ReadToEnd(); AuthenticationTokenResponse authenticationTokenResponse = JsonConvert.DeserializeObject <AuthenticationTokenResponse>(json); _authenticationToken = new AuthenticationToken() { AccessToken = authenticationTokenResponse.Access_token, Expires = DateTime.Now.AddSeconds(authenticationTokenResponse.Expires_in - 500) }; } return(_authenticationToken.AccessToken); }