/// <summary> /// Send Request /// (If there is token. /// else sleep) /// </summary> /// <param name="method"> The url the get request is sent to </param> /// <returns> HttpResponseMessage </returns> public async Task <HttpResponseMessage> GetRequestAsync(string method) { Console.WriteLine(method); Console.WriteLine(_client); if (_tb.RequestIsAllowed(1)) { return(await _client.GetAsync(method)); } else { System.Threading.Thread.Sleep(60000); return(await GetRequestAsync(method)); } }
/// <summary> /// Use reddit username and password to login to reddit /// (Also check if there is token, else exit) /// </summary> /// <example> /// /// var redditBot = new RedditBot(clientId, clientSecret, redditUsername, redditPassword, clientVersion); /// redditBot.Authenticate /// /// </example> private void Authenticate() { var formData = new Dictionary <string, string> { { "grant_type", "password" }, { "username", _redditusername }, { "password", _redditpassword } }; var encodedFormData = new FormUrlEncodedContent(formData); var authurl = "https://www.reddit.com/api/v1/access_token"; if (_tb.RequestIsAllowed(1)) { var response = _client.PostAsync(authurl, encodedFormData).GetAwaiter().GetResult(); Console.WriteLine(response); var responseData = response.Content.ReadAsStringAsync().GetAwaiter().GetResult(); var accessToken = JObject.Parse(responseData).SelectToken("access_token").ToString(); _client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("bearer", accessToken); } else { System.Environment.Exit(-1); } }