public async Task <IActionResult> SearchTweets(SearchTweetRequestModel requestModel) { requestModel.query = "(#hiring (#developer OR software engineer OR software developer OR #tech)) has:links lang:en"; var response = await _twitterFunctions.SearchTweets(requestModel); if (response.results.Any()) { return(Ok(response)); } return(NotFound()); }
public async Task <SearchTweetResponseModel> SearchTweets(SearchTweetRequestModel requestModel) { var client = _clientFactory.CreateClient("twitter"); var consumerKey = _twitterConfig.Value.AppId; var consumerSecret = _twitterConfig.Value.AppSecret; var tweetsResponse = new SearchTweetResponseModel(); client.DefaultRequestHeaders.Accept.Clear(); var json = JsonSerializer.Serialize(requestModel, new JsonSerializerOptions { IgnoreNullValues = true }); var reqContent = new StringContent(json, Encoding.UTF8, "application/json"); var oauthClient = new OAuthRequest { Method = "POST", SignatureMethod = OAuthSignatureMethod.HmacSha1, ConsumerKey = consumerKey, ConsumerSecret = consumerSecret, RequestUrl = "https://api.twitter.com/1.1/tweets/search/30day/dev.json", Version = "1.0a", Realm = "twitter.com" }; string auth = oauthClient.GetAuthorizationHeader(); client.DefaultRequestHeaders.Add("Authorization", auth); try { using var httpResponse = await client.PostAsync(oauthClient.RequestUrl, reqContent); httpResponse.EnsureSuccessStatusCode(); var contentStream = await httpResponse.Content.ReadAsStreamAsync(); tweetsResponse = await JsonSerializer.DeserializeAsync <SearchTweetResponseModel>(contentStream); //var check = await httpResponse.Content.ReadAsStringAsync(); } catch (Exception ex) { } return(tweetsResponse); }