Beispiel #1
0
        private async Task <AccessToken> CheckToken(CancellationToken cancellationToken, TwitchService twitchService)
        {
            var token = await twitchService.GetToken();

            if (token == null)
            {
                await UpdateDashboardStatus(IntegrationStatus.Forbidden, cancellationToken);

                return(null);
            }

            if (token.Status == AccessTokenStatus.Expired && token.HasRefreshToken)
            {
                await twitchService.RefreshToken(token);
            }

            if (token.Status != AccessTokenStatus.Ok)
            {
                await UpdateDashboardStatus(IntegrationStatus.Forbidden, cancellationToken);

                return(null);
            }

            return(token);
        }
Beispiel #2
0
        private async Task TwitchHandshake(ClientWebSocket webSocket, CancellationToken cancellationToken)
        {
            var token = await twitchService.GetToken();

            if (token == null)
            {
                await dashboardService.UpdateStatus(ApiSource.Twitch, BackgroundServiceStatus.Forbidden, cancellationToken);

                return;
            }

            if (token.Status == AccessTokenStatus.Expired && token.HasRefreshToken)
            {
                await twitchService.RefreshToken(token);
            }

            if (token.Status != AccessTokenStatus.Ok)
            {
                await dashboardService.UpdateStatus(ApiSource.Twitch, BackgroundServiceStatus.Forbidden, cancellationToken);

                return;
            }

            await Send(webSocket, cancellationToken, $"PASS oauth:{token.access_token}");
            await Send(webSocket, cancellationToken, $"NICK machacoder"); // TODO: get nick from twitch API
        }