diff --git a/src/BirdsiteLive.Twitter/Tools/TwitterAuthenticationInitializer.cs b/src/BirdsiteLive.Twitter/Tools/TwitterAuthenticationInitializer.cs index 854cb2c..f65c708 100644 --- a/src/BirdsiteLive.Twitter/Tools/TwitterAuthenticationInitializer.cs +++ b/src/BirdsiteLive.Twitter/Tools/TwitterAuthenticationInitializer.cs @@ -14,6 +14,7 @@ namespace BirdsiteLive.Twitter.Tools { Task EnsureAuthenticationIsInitialized(); Task MakeHttpClient(); + HttpRequestMessage MakeHttpRequest(HttpMethod m, string endpoint); } public class TwitterAuthenticationInitializer : ITwitterAuthenticationInitializer @@ -54,8 +55,8 @@ namespace BirdsiteLive.Twitter.Tools { (string bearer, string guest) = await GetCred(); -// HttpClient client = _httpClientFactory.CreateClient(); - HttpClient client = new HttpClient(); + HttpClient client = _httpClientFactory.CreateClient(); + //HttpClient client = new HttpClient(); client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", $"Bearer " + bearer); client.DefaultRequestHeaders.TryAddWithoutValidation("x-guest-token", guest); client.DefaultRequestHeaders.TryAddWithoutValidation("Referer", "https://twitter.com/"); @@ -115,5 +116,16 @@ namespace BirdsiteLive.Twitter.Tools int r = rnd.Next(_twitterClients.Count); return _twitterClients[r]; } + public HttpRequestMessage MakeHttpRequest(HttpMethod m, string endpoint) + { + var client = _httpClientFactory.CreateClient(); + var request = new HttpRequestMessage(m, endpoint); + int r = rnd.Next(_twitterClients.Count); + request.Headers.TryAddWithoutValidation("Authorization", $"Bearer " + BearerToken); + request.Headers.TryAddWithoutValidation("x-guest-token", _tokens[r]); + request.Headers.TryAddWithoutValidation("Referer", "https://twitter.com/"); + request.Headers.TryAddWithoutValidation("x-twitter-active-user", "yes"); + return request; + } } } \ No newline at end of file diff --git a/src/BirdsiteLive.Twitter/TwitterTweetsService.cs b/src/BirdsiteLive.Twitter/TwitterTweetsService.cs index bf4a05c..31c6329 100644 --- a/src/BirdsiteLive.Twitter/TwitterTweetsService.cs +++ b/src/BirdsiteLive.Twitter/TwitterTweetsService.cs @@ -48,7 +48,6 @@ namespace BirdsiteLive.Twitter public async Task GetTweetAsync(long statusId) { - var client = await _twitterAuthenticationInitializer.MakeHttpClient(); @@ -58,7 +57,7 @@ namespace BirdsiteLive.Twitter try { JsonDocument tweet; - using (var request = new HttpRequestMessage(new HttpMethod("GET"), reqURL)) + using (var request = _twitterAuthenticationInitializer.MakeHttpRequest(new HttpMethod("GET"), reqURL)) { var httpResponse = await client.SendAsync(request); httpResponse.EnsureSuccessStatusCode(); @@ -105,7 +104,7 @@ namespace BirdsiteLive.Twitter List extractedTweets = new List(); try { - using (var request = new HttpRequestMessage(new HttpMethod("GET"), reqURL)) + using (var request = _twitterAuthenticationInitializer.MakeHttpRequest(new HttpMethod("GET"), reqURL)) { var httpResponse = await client.SendAsync(request); diff --git a/src/BirdsiteLive.Twitter/TwitterUserService.cs b/src/BirdsiteLive.Twitter/TwitterUserService.cs index b3ed560..efed9c5 100644 --- a/src/BirdsiteLive.Twitter/TwitterUserService.cs +++ b/src/BirdsiteLive.Twitter/TwitterUserService.cs @@ -43,7 +43,7 @@ namespace BirdsiteLive.Twitter { var client = await _twitterAuthenticationInitializer.MakeHttpClient(); - using (var request = new HttpRequestMessage(new HttpMethod("GET"), endpoint.Replace("elonmusk", username))) + using (var request = _twitterAuthenticationInitializer.MakeHttpRequest(new HttpMethod("GET"), endpoint.Replace("elonmusk", username))) { var httpResponse = await client.SendAsync(request); httpResponse.EnsureSuccessStatusCode();