@using System.Text.RegularExpressions @using PlaylistShared.Shared.DTO @inject HttpClient Http @inject ISnackbar Snackbar Подключение Яндекс.Музыки Нажмите на кнопку и разрешите доступ приложению. Войти в Яндекс Скопируйте значение access_token или весь URL из адресной строки после перенаправления. https://music.yandex.ru/#access_token=ВАШ_ТОКЕН&... Сохранить @code { [CascadingParameter] IMudDialogInstance MudDialog { get; set; } private string _rawInput = ""; private int _index; private bool _tokenErr = false; private async Task HandleWheel(WheelEventArgs e) { if (e.DeltaY > 0 && _index < 1) // Прокрутка вниз -> Вперед { _index++; } else if (e.DeltaY < 0 && _index > 0) // Прокрутка вверх -> Назад { _index--; } } private async Task Submit() { var token = ExtractToken(_rawInput); if (string.IsNullOrWhiteSpace(token)) { _tokenErr = true; Snackbar.Add("Токен не найден", Severity.Error); return; } _tokenErr = false; var response = await Http.PostAsJsonAsync("/api/yandextoken/set", new SetYandexTokenRequest { Token = token }); if (response.IsSuccessStatusCode) { Snackbar.Add("Токен успешно обновлен", Severity.Success); MudDialog.Close(DialogResult.Ok(true)); } else { Snackbar.Add("Ошибка обновления токена. Повторите позже.", Severity.Error); } } private string ExtractToken(string input) => input.Contains("access_token=") ? Regex.Match(input, @"access_token=([^&]+)").Groups[1].Value : input.Trim(); public class SetYandexTokenRequest { public string Token { get; set; } } }