Registrarnos en la API para conseguir el TOKEN

Nos registramos en la api, nos dirigimos a nuestra cuenta y le damos a la opción de crear KEY, en la que nos pedirá que metamos nombre, descripción y nuestra IP https://developer.brawlstars.com/#/. Una vez creada la KEY entramos y tenemos el TOKEN lo copiamos y nos lo guardamos para insertarlo en el codigo.

En nuestro proyecto hacemos la petición de AUTHORIZATION

string enlaceJugadores = "https://api.brawlstars.com/v1/players/%23";

HttpClient cliente = new HttpClient();

            cliente.DefaultRequestHeaders.Add("accept", "application/json");
//Importante el BEARER antes del TOKEN
            cliente.DefaultRequestHeaders.Add("authorization", "Bearer TOKEN";

try
            {

                var playerresponse = await cliente.GetStringAsync(enlaceJugadores + idjugador);
                JObject json = JObject.Parse(playerresponse);
                json.Values().AsEnumerable().ToList();

                return true;
            }
            catch(Exception ex)
            {
                return false;
            }

            return true;

Consumimos la API para conseguir la información del Usuario por su TAG

public async Task<JObject> InfoUsuarioXTag(string tag)
        {

            JObject jsondevolver;

            HttpClient cliente = new HttpClient();

            cliente.DefaultRequestHeaders.Add("accept", "application/json");
            cliente.DefaultRequestHeaders.Add("authorization", "Bearer TOKEN");

            string enlaceSolicitud = $"{enlaceJugadores}{tag}";

            try
            {

                var playerresponse = await cliente.GetStringAsync(enlaceSolicitud);
                jsondevolver = JObject.Parse(playerresponse);

            }
            catch (Exception ex)
            {
                jsondevolver = new JObject();
            }

            return jsondevolver;
        }

En el Registro validamos si existe o no el usuario

Si existe el registro se completa, si no te manda mensaje de error porque no existe el usuario con ese TAG.

                if(await helper.TokenApi(usuariotag) == false)
                {
                    ViewData["ERROR"] = "Error no existe el usuario";
                }
                else
                {
                    this.repo.InsertarUsuario(usuariotag, nombre, email, contrasenia);
                }

Añadimos la información de la API a nuestro objeto PERFIL

Para ver los datos del usuario, creamos un modelo Perfil en el que tendrá los campos que queramos recoger de la api y se lo añadimos de la siguiente forma:

public async Task<IActionResult> PerfilUsuario()
        {
            Perfil perf = new Perfil();

            User usu = HttpContext.Session.GetObject<User>("USUARIO");
            if (usu != null)
            {
                JObject jsonusu = await this.helper.InfoUsuarioXTag(usu.UsuarioTag);


                perf.Tag = jsonusu.Values().AsEnumerable().ToList().Where(x => x.Path == "tag" && x.Type.ToString() == "String").FirstOrDefault().ToString();

                perf.Nombre = jsonusu.Values().AsEnumerable().ToList().Where(x => x.Path == "name").FirstOrDefault().ToString();
                perf.Trofeos = int.Parse(jsonusu.Values().AsEnumerable().ToList().Where(x => x.Path == "trophies").FirstOrDefault().ToString());
                perf.MaximoTr = int.Parse(jsonusu.Values().AsEnumerable().ToList().Where(x => x.Path == "highestTrophies").FirstOrDefault().ToString());
                perf.VictoriasTotales = int.Parse(jsonusu.Values().AsEnumerable().ToList().Where(x => x.Path == "3vs3Victories").FirstOrDefault().ToString())
                    + int.Parse(jsonusu.Values().AsEnumerable().ToList().Where(x => x.Path == "soloVictories").FirstOrDefault().ToString())
                    + int.Parse(jsonusu.Values().AsEnumerable().ToList().Where(x => x.Path == "duoVictories").FirstOrDefault().ToString());

                return View(perf);
            }
            else
            {
                return RedirectToAction("InicioPagina", "LoginUsuario");
            }
            
        }

Y ya por ultimo mostrar los datos en la vista que creamos llamada Perfil

@model Perfil
<div style="position: relative;">
    <div class="card" style="width: 18rem; background-color:#242424;position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); margin-top:350px">
        <img src="https://static.brawler.gg/images/portraits/shelly-portrait.3be52d59c3.png" class="card-img-top" alt="...">
        <div class="card-body">
            <h4 class="card-title">@Model.Nombre</h4>
            <h5 class="card-title">Tag: @Model.Tag</h5>
            <p class="card-text">Total Trofeos: @Model.Trofeos</p>
            <p class="card-text">Maximo Trofeos: @Model.MaximoTr</p>
            <p class="card-text">Victorias Totales: @Model.VictoriasTotales</p>
        </div>
    </div>
</div>

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.