Попытался реализовать получение токена Вконтакте для android, через xamarin.auth, выдает невнятную ошибку

Рейтинг: 0Ответов: 0Опубликовано: 23.04.2023

Весь код взял из этой статьи https://itnan.ru/post.php?c=1&p=332970

 public Task<LoginResult> Login()
            {
                completionSource = new TaskCompletionSource<LoginResult>();
                string clientId = "Тут мой id, убрал для скриншота";
                string scope = "audio";
                var auth = new OAuth2Authenticator
                (
                clientId: clientId,
                clientSecret: "тут мой секретный ключ из приложения vk",
                scope: scope,
                authorizeUrl: new Uri("https://oauth.vk.com/authorize"),
                redirectUrl: new Uri("https://oauth.vk.com/blank.html"),
                accessTokenUrl: new Uri("https://oauth.vk.com/access_token")
                )
                {
                    AllowCancel = true
                };
                auth.Completed += AuthOnCompleted;
    
                //Android.App.Application.Context.StartActivity(auth.GetUI());
                Forms.Context.StartActivity(auth.GetUI(Forms.Context));
    
                return completionSource.Task;
            }

Выдает ошибку, которая на скриншоте после авторизации. Ошибка выпрыгивает после строчки return completionSource.Task; Интересно, что ошибка выпрыгивает до тех пор пока не закрою приложение, то есть следующее окно ошибки выпрыгивает поверх предыдущего и так до бесконечности. На скриншоте можно увидеть жирнючую тень от многократно вызванных окон

введите сюда описание изображения

Сам LoginResult:

public class LoginResult
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Email { get; set; }
        public string ImageUrl { get; set; }
        public string UserId { get; set; }
        public string Token { get; set; }
        public DateTimeOffset ExpireAt { get; set; }
        public LoginState LoginState { get; set; }
        public string ErrorString { get; set; }
    }

    public enum LoginState
    {
        Failed,
        Canceled,
        Success
    }

Ответы

Ответов пока нет.