Exemple #1
0
        public async Task <HttpStatusCode> UpdateSubscription(TwitchWebhookRequest request)
        {
            // TODO: Replace Json.NET with System.Text.Json
            var json = JsonConvert.SerializeObject(request, new JsonSerializerSettings {
                StringEscapeHandling = StringEscapeHandling.Default
            });
            var formData = new StringContent(json, Encoding.UTF8, "application/json");
            var response = await _httpClient.PostAsync(_twitchMonitor.CurrentValue.Urls.EventSubscriptionUrl, formData);

            return(response.StatusCode);
        }
Exemple #2
0
        private async Task <HttpResponseMessage> MakeHttpPostRequest(Uri url, TwitchWebhookRequest request, string accessToken)
        {
            _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
            var json = JsonConvert.SerializeObject(request, new JsonSerializerSettings {
                StringEscapeHandling = StringEscapeHandling.Default
            });
            var formData = new StringContent(json, System.Text.Encoding.UTF8, "application/json");
            var response = await _httpClient.PostAsync(url, formData);

            response.EnsureSuccessStatusCode();
            return(response);
        }
Exemple #3
0
        private async Task UpdateStreamChangeSubscription(List <string> channels, bool isSubscribed)
        {
            foreach (var channel in channels)
            {
                var selected = TwitchUsers.FirstOrDefault(user => string.Equals(channel, user.LoginName, StringComparison.InvariantCultureIgnoreCase));
                // TODO: Inject callback url into UpdateSubscription methods

                var request = new TwitchWebhookRequest
                {
                    Callback = $"https://twitchchatbotfx20200511150805.azurewebsites.net/api/subscription/streams/{channel}",
                    Mode     = isSubscribed ? "subscribe" : "unsubscribe",
                    Topic    = $"https://api.twitch.tv/helix/streams?user_id={selected.Id}",
                    Lease    = 864000
                };

                var url      = new Uri(Constants.TWITCH_WEBHOOKS_SUBSCRIPTION_URL);
                var response = await MakeHttpPostRequest(url, request, AccessToken);
            }
        }
 public Task <HttpStatusCode> UpdateSubscription(TwitchWebhookRequest request)
 {
     throw new System.NotImplementedException();
 }