private void SignRequest(WebRequest request)
        {
            var requestUri = request.RequestUri;

            if (request.RequestUri.Host.Contains("runscope"))
            {
                var url = request.RequestUri.ToString().Replace("payment-cmtapi-com-hqy5tesyhuwv.runscope.net", "payment.cmtapi.com");
                requestUri = new Uri(url);
            }

            var oauthHeader = OAuthAuthorizer.AuthorizeRequest(ConsumerKey,
                                                               ConsumerSecretKey,
                                                               "",
                                                               "",
                                                               request.Method,
                                                               requestUri,
                                                               null);

            request.Headers.Add(HttpRequestHeader.Authorization, oauthHeader);
            request.ContentType = ContentType.Json;


            _logger.Maybe(() => _logger.LogMessage("CMT request header info : " + request.Headers));
            _logger.Maybe(() => _logger.LogMessage("CMT request info : " + request.ToJson()));
        }
        public void Share(string message, Action onRequestDone)
        {
            var content = string.Format("status={0}&trim_user=true&include_entities=true", OAuthEncoder.PercentEncode(message));
            var taskUri = new Uri("https://api.twitter.com/1/statuses/update.json");
            var client  = GetClient();

            client.Headers [HttpRequestHeader.Authorization] = OAuthAuthorizer.AuthorizeRequest(_oauthConfig, _oAuthToken, _oAuthTokenSecret, "POST", taskUri, content);

            try
            {
                client.UploadData(taskUri, "POST", Encoding.UTF8.GetBytes(content));
                if (onRequestDone != null)
                {
                    onRequestDone();
                }
            }
            catch (WebException ex)
            {
                Console.WriteLine("Error while posting on Twitter. Message: " + ex.Message);
            }
            finally
            {
                client.Dispose();
            }
        }
        public void GetUserInfos(Action <TwitterUserInfo> onRequestDone)
        {
            var content = string.Format("user_id={0}&screen_name={1}", OAuthEncoder.PercentEncode(_userId), OAuthEncoder.PercentEncode(_screenName));
            var taskUri = new Uri("https://api.twitter.com/1.1/users/show.json?" + content);
            var request = (HttpWebRequest)WebRequest.Create(taskUri);

            request.AutomaticDecompression = DecompressionMethods.GZip;
            request.Headers [HttpRequestHeader.Authorization] = OAuthAuthorizer.AuthorizeRequest(_oauthConfig, _oAuthToken, _oAuthTokenSecret, "GET", taskUri, null);

            TwitterUserInfo userInfos = null;

            request.BeginGetResponse(ar => {
                try {
                    var response = (HttpWebResponse)request.EndGetResponse(ar);
                    using (var stream = response.GetResponseStream())
                    {
                                                #if !WINDOWS
                        var jentry   = (JsonObject)JsonValue.Load(stream);
                        userInfos    = new TwitterUserInfo();
                        userInfos.Id = jentry["id_str"];
                        string name  = jentry["name"];
                        if (name.Contains(" "))
                        {
                            userInfos.Firstname = name.Substring(0, name.IndexOf(" "));
                            userInfos.Lastname  = name.Substring(name.IndexOf(" ") + 1);
                        }
                        else
                        {
                            userInfos.Firstname = name;
                        }
                        userInfos.City = jentry["location"];
                                                #endif
                    }
                } catch (WebException we) {
                    var response = we.Response as HttpWebResponse;
                    if (response != null)
                    {
                        switch (response.StatusCode)
                        {
                        case HttpStatusCode.Unauthorized:
                            // This is the case of sharing two keys
                            break;
                        }
                    }
                    Console.WriteLine(we);
                }
                finally{
                    if (onRequestDone != null)
                    {
                        onRequestDone(userInfos);
                    }
                }
            }, null);
        }
Ejemplo n.º 4
0
        private void SignRequest(WebRequest request)
        {
            var oauthHeader = OAuthAuthorizer.AuthorizeRequest(ConsumerKey,
                                                               ConsumerSecretKey,
                                                               "",
                                                               "",
                                                               request.Method,
                                                               request.RequestUri,
                                                               null);

            request.Headers.Add(HttpRequestHeader.Authorization, oauthHeader);
        }
Ejemplo n.º 5
0
        public static List <Task <string> > DownloadAllJsonAsync(this IEnumerable <string> urls, TwitterAuth twitterAuth)
        {
            if (twitterAuth == null)
            {
                return(urls.DownloadAllAsync(ContentType.Json));
            }

            return(urls.DownloadAllAsync(ContentType.Json, (webReq, uri) => {
                webReq.Headers[HttpRequestHeader.Authorization] = OAuthAuthorizer.AuthorizeRequest(
                    twitterAuth.OAuthProvider, twitterAuth.AccessToken, twitterAuth.AccessTokenSecret, HttpMethod.Get, uri, null);
            }));
        }
Ejemplo n.º 6
0
        public static string DownloadJsonFromUrl(this string url, TwitterAuth twitterAuth)
        {
            if (twitterAuth == null)
            {
                return(url.DownloadJsonFromUrl());
            }

            var uri    = new Uri(url);
            var webReq = (HttpWebRequest)WebRequest.Create(uri);

            webReq.Accept = ContentType.Json;
            webReq.Headers[HttpRequestHeader.Authorization] = OAuthAuthorizer.AuthorizeRequest(
                twitterAuth.OAuthProvider, twitterAuth.AccessToken, twitterAuth.AccessTokenSecret, HttpMethod.Get, uri, null);

            using (var webRes = webReq.GetResponse())
                return(webRes.DownloadText());
        }
Ejemplo n.º 7
0
        public static string PostToUrl(TwitterAuthProvider oAuthProvider, string url, string accessToken, string accessTokenSecret, Dictionary <string, string> args, string acceptType = MimeTypes.Json)
        {
            var uri    = new Uri(url);
            var webReq = (HttpWebRequest)WebRequest.Create(uri);

            webReq.Accept = acceptType;
            webReq.Method = HttpMethods.Post;

            string data = null;

            if (args != null)
            {
                var sb = new StringBuilder();
                foreach (var arg in args)
                {
                    if (sb.Length > 0)
                    {
                        sb.Append("&");
                    }
                    sb.AppendFormat("{0}={1}", arg.Key, OAuthUtils.PercentEncode(arg.Value));
                }
                data = sb.ToString();
            }

            webReq.Headers[HttpRequestHeader.Authorization] = OAuthAuthorizer.AuthorizeRequest(
                oAuthProvider, accessToken, accessTokenSecret, "POST", uri, data);

            if (data != null)
            {
                webReq.ContentType = MimeTypes.FormUrlEncoded;
                using (var writer = new StreamWriter(webReq.GetRequestStream()))
                    writer.Write(data);
            }

            using (var webRes = webReq.GetResponse())
            {
                return(webRes.ReadToEnd());
            }
        }
Ejemplo n.º 8
0
        public void SetOAuthHeader(string url, string method, string consumerKey, string consumerSecretKey)
        {
            var baseAddress = Client.BaseAddress.ToString();

            if (Client.BaseAddress.Host.Contains("runscope"))
            {
                baseAddress = baseAddress.Replace("payment-cmtapi-com-hqy5tesyhuwv.runscope.net", "payment.cmtapi.com");
            }

            var oauthHeader = OAuthAuthorizer.AuthorizeRequest(consumerKey,
                                                               consumerSecretKey,
                                                               "",
                                                               "",
                                                               method,
                                                               new Uri(baseAddress + url),
                                                               null);

            if (Client.DefaultRequestHeaders.Authorization != null)
            {
                Client.DefaultRequestHeaders.Authorization = null;
            }

            Client.DefaultRequestHeaders.Add("Authorization", oauthHeader);
        }