예제 #1
0
 private void iniciarModoStream()
 {
     try
     {
         Log.Instance.ImprimirMensaje("Intentando conectar cuenta de Spotify", TipoMensaje.Info, "Spotify.iniciarModoStream()");
         Programa.HayInternet(true);
         Stopwatch crono = Stopwatch.StartNew();
         auth = new AuthorizationCodeAuth(
             clavePublica,
             clavePrivada,
             "http://localhost:4002/",
             "http://localhost:4002/",
             Scope.UserReadEmail | Scope.UserReadPrivate | Scope.Streaming | Scope.UserReadPlaybackState
             );
         auth.AuthReceived += (sender, payload) =>
         {
             auth.Stop();
             Token token = auth.ExchangeCode(payload.Code).Result;
             tokenActual = token;
             _spotify    = new SpotifyWebAPI()
             {
                 TokenType   = token.TokenType,
                 AccessToken = token.AccessToken
             };
             crono.Stop();
             if (_spotify.AccessToken != null)
             {
                 cuentaLista     = true;
                 cuentaVinculada = true;
                 Programa.config.AppSettings.Settings["VinculadoConSpotify"].Value = "true";
                 Log.Instance.ImprimirMensaje("Conectado sin errores como " + _spotify.GetPrivateProfile().DisplayName, TipoMensaje.Correcto, crono);
             }
             else
             {
                 cuentaLista     = false;
                 cuentaVinculada = false;
                 Log.Instance.ImprimirMensaje("Se ha conectado pero el token es nulo", TipoMensaje.Error, crono);
                 Programa.config.AppSettings.Settings["VinculadoConSpotify"].Value = "false";
             }
             CodigoRefresco = token.RefreshToken;
             Programa.tareaRefrescoToken = new Thread(Programa.Refresco);
             Programa.tareaRefrescoToken.Start();
         };
         auth.Start();
         auth.OpenBrowser();
     }
     catch (NullReferenceException)
     {
         Programa.HayInternet(false);
         Console.WriteLine("Algo fue mal");
         System.Windows.Forms.MessageBox.Show(Programa.textosLocal.GetString("error_internet"));
     }
     catch (HttpRequestException)
     {
         Programa.HayInternet(false);
         Console.WriteLine("No tienes internet");
         System.Windows.Forms.MessageBox.Show(Programa.textosLocal.GetString("error_internet"));
     }
 }
예제 #2
0
        private async void iniciar()
        {
            Log.Instance.ImprimirMensaje("Intentando con Spotify asíncronamente", TipoMensaje.Info, "Spotify.iniciar()");
            Stopwatch crono = Stopwatch.StartNew();

            Programa.HayInternet(false);
            try
            {
                CredentialsAuth authMetadatos = new CredentialsAuth(clavePublica, clavePrivada);
                Token           token         = await authMetadatos.GetToken();

                _spotify = new SpotifyWebAPI()
                {
                    TokenType   = token.TokenType,
                    AccessToken = token.AccessToken
                };
                crono.Stop();
                if (_spotify.AccessToken != null)
                {
                    Programa.HayInternet(true);
                    Log.Instance.ImprimirMensaje("Conectado sin errores", TipoMensaje.Correcto, crono);
                }
                else
                {
                    Programa.HayInternet(false);
                    Log.Instance.ImprimirMensaje("Se ha conectado pero el token es nulo", TipoMensaje.Error, crono);
                }
            }
            catch (NullReferenceException)
            {
                Programa.HayInternet(false);
                Log.Instance.ImprimirMensaje("No se ha podido conectar con Spotify", TipoMensaje.Error);
                System.Windows.Forms.MessageBox.Show(Programa.textosLocal.GetString("error_internet"));
            }
            catch (HttpRequestException)
            {
                Programa.HayInternet(false);
                Log.Instance.ImprimirMensaje("No se ha podido conectar con Spotify", TipoMensaje.Error);
                System.Windows.Forms.MessageBox.Show(Programa.textosLocal.GetString("error_internet"));
            }
        }