public async Task <IActionResult> Subscribe([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "twitch/status/CreateSubscription")] HttpRequest req) { var httpClient = new HttpClient(); var token = await _twitchAuthenticator.GetAccessTokenForAppAsync(new string[] { }); var request = new Subscription() { Type = "stream.online", Version = "1", Condition = new Condition() { BroadcasterUserId = _config.BroadcasterId }, Transport = new Transport() { Method = "webhook", Callback = _config.StreamStatusHandler, Secret = _config.VerifierSecret } }; httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token.AccessToken); httpClient.DefaultRequestHeaders.Add("Client-ID", _config.ClientId); var subscriptionRequest = await httpClient.PostAsync("https://api.twitch.tv/helix/eventsub/subscriptions", new StringContent(JsonSerializer.Serialize(request), System.Text.Encoding.UTF8, "application/json")); return(new OkObjectResult(await subscriptionRequest.Content.ReadAsStringAsync())); }