Exemple #1
0
        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());
            }
        }
Exemple #2
0
            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;
        }
Exemple #4
0
        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));
        }
Exemple #5
0
        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>());
            }
        }
Exemple #6
0
 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));
 }
Exemple #7
0
        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;
 }