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))); }
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); } }