Example #1
0
        public async Task <IActionResult> Messages(string id)
        {
            var token = await youtubeService.GetToken();

            if (token == null)
            {
                return(await Authorize());
            }

            if (token.Status == AccessTokenStatus.Expired)
            {
                await youtubeService.RefreshToken(token);
            }

            var liveChatMessageList = await youtubeService.GetLiveChatMessages(id, string.Empty);

            foreach (var item in liveChatMessageList.items.Where(x => x.snippet.hasDisplayContent))
            {
                await chatHubContext.Clients.All.SendAsync("ReceiveMessage", item.AuthorDetails.displayName,
                                                           item.snippet.displayMessage);
            }

            return(View("Messages", liveChatMessageList));
        }