コード例 #1
0
ファイル: StreamStatusHook.cs プロジェクト: 425show/425bot
        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()));
        }