コード例 #1
0
        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());
        }
コード例 #2
0
        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);
        }