Exemplo n.º 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);
        }
Exemplo n.º 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
        }
Exemplo n.º 3
0
        private async Task TwitchHandshake(ClientWebSocket webSocket, CancellationToken cancellationToken,
                                           TwitchService twitchService, TwitchManager twitchManager)
        {
            await CheckToken(cancellationToken, twitchService);

            var token = await twitchService.GetToken();

            var user = await twitchManager.GetUser();

            Send($"PASS oauth:{token.access_token}");
            Send($"NICK {user.login}"); // TODO: get nick from twitch API
        }