Esempio n. 1
0
        public static string GetAuthenticationUrl(Permissions permissions)
        {
            IDictionary <string, string> parameters = new Dictionary <string, string>
            {
                { "api_key", ApiKey },
                { "format", "json" },
                { "method", _getFrob }
            };

            string apiSig = SignApiParameters(parameters);

            parameters.Add("api_sig", apiSig);
            string url = string.Format("{0}?{1}", _restUrl, EncodeParameters(parameters));

            WebRequest webRequest = WebRequest.Create(url);

            webRequest.Method = WebRequestMethods.Http.Get;
            WebResponse webResponse = webRequest.GetResponse();
            string      data;

            using (StreamReader sr = new StreamReader(webResponse.GetResponseStream()))
            {
                data = sr.ReadToEnd();
                sr.Close();
            }
            RtmApiResponseRoot responseRoot = JsonConvert.DeserializeObject <RtmApiResponseRoot>(data);
            RtmApiResponse     response     = responseRoot.Response;

            _frob = response.Frob;

            string perms = string.Empty;

            switch (permissions)
            {
            case Permissions.Read:
                perms = "read";
                break;

            case Permissions.Write:
                perms = "write";
                break;

            case Permissions.Delete:
                perms = "delete";
                break;
            }

            parameters.Remove("format");
            parameters.Remove("method");
            parameters.Remove("api_sig");
            parameters.Add("perms", perms);
            parameters.Add("frob", _frob);

            apiSig = SignApiParameters(parameters).ToLower();
            parameters.CreateNewOrUpdateExisting("api_sig", apiSig);

            return(string.Format("{0}?{1}", _authUrl, EncodeParameters(parameters)));
        }
Esempio n. 2
0
        private static RtmApiResponse SendRequest(string webRequestMethod, string rtmMethod, RtmApiRequest request)
        {
            RtmApiResponse response = null;

            try
            {
                request.Parameters.CreateNewOrUpdateExisting("format", "json");
                request.Parameters.CreateNewOrUpdateExisting("method", rtmMethod);
                request.Parameters.CreateNewOrUpdateExisting("api_key", ApiKey);
                request.Parameters.CreateNewOrUpdateExisting("auth_token", AuthToken);

                request.Parameters.Remove("api_sig");

                string apiSig = SignApiParameters(request.Parameters);
                request.Parameters.Add("api_sig", apiSig);

                string url = string.Format("{0}?{1}", _restUrl, EncodeParameters(request.Parameters));

                WebRequest webRequest = WebRequest.Create(url);
                webRequest.Method = webRequestMethod;
                WebResponse webResponse = webRequest.GetResponse();
                string      data;
                using (StreamReader sr = new StreamReader(webResponse.GetResponseStream()))
                {
                    data = sr.ReadToEnd();
                    sr.Close();
                }
                RtmApiResponseRoot responseRoot = JsonConvert.DeserializeObject <RtmApiResponseRoot>(data);
                response = responseRoot.Response;
                return(response);
            }
            catch (Exception)
            {
                return(response);
            }
        }