public async Task <TwitterToCheck> GetUser(string handle) { try { var header = new OAuthHeader( _config["Twitter:ConsumerKey"], _config["Twitter:ConsumerSecret"], _config["Twitter:Token"], _config["Twitter:TokenSecret"]); var url = $"https://api.twitter.com/1.1/users/show.json?screen_name={handle}"; using (var client = new HttpClient()) { client.DefaultRequestHeaders.Authorization = header.Generate(url, "GET"); var response = await client.GetAsync(url); var responseString = await response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <TwitterToCheck>(responseString)); } } catch (Exception e) { Log.Debug(e, "Get Tweet"); return(new TwitterToCheck()); } }
public string makeRequest(string resource, String method = "GET", String postData = "") { String url = Tokens.url + resource; System.Net.ServicePointManager.Expect100Continue = false; HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; OAuthHeader header = new OAuthHeader(); request.Headers.Add(HttpRequestHeader.Authorization, header.getAuthorizationHeader(method, url)); request.Method = method; if (postData.Length > 0 && (method == "POST" || method == "PUT")) { XmlDocument soapEnvelopeXml = new XmlDocument(); soapEnvelopeXml.LoadXml(postData); using (Stream stream = request.GetRequestStream()) { soapEnvelopeXml.Save(stream); } request.ContentType = "application/xml;charset=\"utf-8\""; request.Accept = "application/json,application/xml"; } HttpWebResponse response; try { response = request.GetResponse() as HttpWebResponse; byte[] b = ReadFully(response.GetResponseStream()); return(Encoding.UTF8.GetString(b, 0, b.Length)); } catch (System.Net.WebException ex) { Console.WriteLine("Error: " + ex.Message); response = ex.Response as HttpWebResponse; if (response.StatusCode == HttpStatusCode.Unauthorized) { Console.WriteLine(@"App token = '{0}' App secret = '{1}' Access token = '{2}' Access token secret = '{3}'", Tokens.appToken, Tokens.appSecret, Tokens.accessToken, Tokens.accessSecret); } return(""); } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); return(""); } }
public OAuthHeaderGenerator(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret) { if (string.IsNullOrEmpty(consumerKey) || string.IsNullOrEmpty(consumerSecret) || string.IsNullOrEmpty(accessToken) || string.IsNullOrEmpty(accessTokenSecret)) { throw new ArgumentException(); } _oauthHeader = new OAuthHeader(); _oauthHeader.ConsumerKey = consumerKey; _oauthHeader.ConsumerSecret = consumerSecret; _oauthHeader.AccessToken = accessToken; _oauthHeader.AccessTokenSecret = accessTokenSecret; }
public static T GetAuthentication <T>(string baseUrl, string url, Method httpMethod , string userName, string password, OAuthHeader oAuthHeader = null) { var client = new RestClient(baseUrl); var request = new RestRequest(url, Method.POST); string encodedBody = string.Format("username={0}&password={1}&grant_type={2}", userName, password, "password"); request.AddParameter("application/x-www-form-urlencoded", encodedBody, ParameterType.RequestBody); request.AddParameter("Content-Type", "application/x-www-form-urlencoded", ParameterType.HttpHeader); var response = client.Execute(request); return(JsonConvert.DeserializeObject <T>(response.Content)); }
public async Task <List <Tweet> > GetTweet(long userId, long?sinceId) { try { var header = new OAuthHeader( _config["Twitter:ConsumerKey"], _config["Twitter:ConsumerSecret"], _config["Twitter:Token"], _config["Twitter:TokenSecret"]); var url = $"https://api.twitter.com/1.1/statuses/user_timeline.json?user_id={userId}&count=50&tweet_mode=extended"; if (sinceId.HasValue) { url += $"&since_id={sinceId.Value}"; } using (var client = new HttpClient()) { client.DefaultRequestHeaders.Authorization = header.Generate(url, "GET"); var response = await client.GetAsync(url); var responseString = await response.Content.ReadAsStringAsync(); var tweets = JsonConvert.DeserializeObject <List <Tweet> >(responseString); if (sinceId.HasValue) { tweets.Reverse(); } return(tweets); } } catch (Exception e) { Log.Warning(e, "Get Tweet"); return(new List <Tweet>()); } }
public static T InvokeApi <T>(string baseUrl, string url, Method httpMethod, OAuthHeader oAuthHeader = null, object body = null) { return(InvokeApiAsync <T>(baseUrl, url, httpMethod, oAuthHeader, body)); }
public static T InvokeApiAsync <T>(string baseUrl, string url, Method httpMethod, OAuthHeader oAuthHeader = null, object body = null) { var client = new RestClient(baseUrl); var request = new RestRequest(url, httpMethod); ServicePointManager.ServerCertificateValidationCallback = delegate { return(true); }; if (oAuthHeader != null) { foreach (var header in oAuthHeader.GetHeaders()) { request.AddHeader(header.Key, header.Value); } } else { var userCredentailsKeyValue = body as ApiTokenObject; if (userCredentailsKeyValue != null) { client.Authenticator = new HttpBasicAuthenticator(userCredentailsKeyValue.username, userCredentailsKeyValue.password); } } if ((httpMethod == Method.POST || httpMethod == Method.PUT || httpMethod == Method.DELETE) && body != null) { request.AddParameter("Content-Type", "application/x-www-form-urlencoded", ParameterType.HttpHeader); request.AddParameter("application/json", JsonConvert.SerializeObject(body), ParameterType.RequestBody); //request.AddBody(body); } var response = client.Execute(request); return(JsonConvert.DeserializeObject <T>(response.Content)); }
public void SetUp() { _oAuthHeaderProvider = MockRepository.GenerateStub<OAuthHeader>(); _oAuthHeaderProvider. Stub(r => r.New(Arg<Request>.Is.Anything, Arg<CredentialSet>.Is.Anything)). Return("A fake OAuth header"); }
public OAuthAuthorizationPolicy(OAuthHeader oAuthHeader, CredentialSet credentials) { _oAuthHeader = oAuthHeader; _credentials = credentials; }