Desarrollo de Aplicaciones con APIs de Blizzard: Guía Completa
> En esta sección vamos a explicar algunos conceptos del portal de desarrolladores de Blizzard que vamos a necesitar para el desarrollo de nuestra app.
Este es el portal oficial de desarrolladores de Blizzard. Aquí encontrarás toda la información necesaria.
> 📗 https://develop.battle.net/
Una vez hayas creado tu cuenta, el siguiente paso es que te instales en el móvil la aplicación "Blizzard Authenticator".
El Authenticator de Blizzard es obligatorio y ofrece una capa extra de seguridad contra accesos no autorizados a tu cuenta.
Descarga la aplicación Blizzard Authenticator de la App Store o desde Google Play para continuar.
Cuando entres a tu cuenta, recibirás una solicitud de autenticación en tu equipo. Si el código de tu equipo es el mismo que el de tu ordenador, presiona Aprobar.
Abre la aplicación de Blizzard Authenticator, verás algo parecido a esto:
Desde el formulario de iniciar sesión, pon tu usuario y tu contraseña. Antes de terminar el inicio de sesión, te pedirán que confirmes el acceso
Ahora, en la app Blizzard Authenticator, te aparecerá el código. Pulsa el botón de "Autorizar"
Una vez que hayas aceptado desde la app en tu teléfono móvil verás algo como esto:
Seguridad
Si inicias sesión siempre desde la misma ubicación, puede que no se te pida un código de Authenticator. Esto permite iniciar sesión más rápido cuando te encuentras en una ubicación segura.
Si recibes una solicitud de autenticación que no hayas iniciado, haz clic en Denegar y cambia tu contraseña de Blizzard.
Para consumir las APIs de Diablo III (o cualquier otro juego de Blizzard) es necesario previamente haber obtenido un token de acceso, que a partir de ahora lo llamaremos el "token". El token de acceso es una credencial usada para acceder a los recursos protegidos de la API. Este tipo de flujo, el flujo "Client Credentials Flow" se usa para la mayoría de las solicitudes a las APIs de Blizzard.
Cuando entras en la aplicación (https://diablo3.netlify.com/), lo primero que ves es un "Loading". Eso es porque la aplicación está obteniendo el token. Más adelante entenderás cómo se hace.
Puedes ver el RFC de OAuth si quieres saber más acerca del "Client Credentials Flow"
Blizzard emplea varios conceptos basados en la región para administrar y servir los datos de los juegos.
Los datos de las APIs están limitados a regiones específicas. Por ejemplo, las APIs de Europa (eu) a las que se acceden a través de eu.battle.net solo contienen datos de grupos de batalla y reinos de Europa.
En este caso nos vamos a centrar en las regiones para Diablo III. Puede ser que esta información cambie para otros juegos como Starcraft o WoW.
Las regiones y los datos a los que tienen acceso son los siguientes:
Región
Datos
US
Battle.net, WoW, D3, SC2
EU
Battle.net, WoW, D3, SC2
KR
Battle.net, WoW, D3, SC2
TW
Battle.net, WoW, D3, SC2
CN
Battle.net, WoW, D3, SC2
Aunque estas son todas las regiones que podemos utilizar, la región de China (CN) no la vamos a usar en nuestra aplicación. Tiene un funcionamiento distinto al resto de las regiones. Por eso, para este curso la dejaremos de lado.
Diablo III APIs
Diablo III nos ofrece dos tipos de APIs, que tienen URLs diferentes y usaremos de forma distinta en nuestra aplicación.
En este curso, construirás la aplicación de D3PF utilizando estos dos tipos de APIs. Guárdate los enlaces a la documentación de las APIs, pues las usaremos a menudo para consultar cómo se traen los datos, parámetros requeridos, etc.
APIs de comunidad
Las APIs de comunidad de Diablo III, nos van a traer datos del perfil del usuario que estemos buscando, como por ejemplo, los héroes que tiene o élites que ha matado a lo largo del tiempo.
A través de las APIs de datos del juego de Diablo III, podemos obtener información sobre las temporadas, los rankings y las eras (las eras son parecidas a las temporadas, un espacio temporal limitado)
Para poder consumir las APIs de Diablo III, como ya sabes, vas a necesitar un token. Dicho token es el resultado de hacer una llamada http de tipo POST a un servidor de Blizzard con unos parámetros específicos.
Lo que nos devuelva dicha llamada será, si todo ha ido bien, el token. Una vez que tengamos el token, lo guardaremos en nuestra aplicación de forma temporal. Y cada vez que hagamos una llamada a una API del juego usaremos este token.
Para poder obtener el token, vas a tener que crear un cliente. Deberías crear un cliente por cada aplicación, no utilices el mismo cliente en varias aplicaciones.
Client Name: te va a servir para identificar los distintos clientes que tengas. Puedes poner, por ejemplo, "D3PF" que es el nombre de la app.
Redirect URIs: Este campo no lo vamos a usar por el tipo de flujo OAuth que estamos usando.
Service URL: De momento lo dejas en blanco. No te olvides de marcar el checkbox de "I do not have a service URL for this client." Cuando tengas tu app subida en la nube, deberás volver a editar la información de este cliente y actualizar este campo.
Intended Use: ¿Para qué lo vas a usar? ¿Cómo lo vas a usar? Responde a estas preguntas.
Para el caso de esta app puedes poner algo parecido a esto: "Try the new apis and provide players information about their D3 characters", que significa que vas a usar las APIs para "probar las nuevas APIs y proporcionar información sobre los personajes de D3"
Una vez se haya creado, deberías ver algo parecido a esto:
Durante este curso, aprenderás a obtener un token de acceso de los servidores de Blizzard. Para ello, vas a usar el clientID y el clientSecret.
No compartas tu clienteSecret con nadie, intenta guardarlo en un lugar seguro.
Más adelante verás un posible método para tener estos datos de forma privada, pero accesibles desde la aplicación. ¿Cómo te imaginas que lo haremos?
Todos los clientes tienen unos límites a la hora de consumir APIs. Para evitar sobrecargas en los servidores, las APIs tienen las siguientes restricciones:
No me agrada tanto requisito para usar el api. No pasa de la pagina de configuración del app
¿Qué problema tienes?
Me pasa igual, en el app, no se carga bien despues de precionar el boton "Set Up Authenticator"
Para los que no puedan iniciar sesión por el autenticador del celular, intenten crear una nueva cuenta desde su computadora, la que saben que van a usar para este curso, así blizzard no los forzará a usar el autenticador y podrán sacar su token
Ya intente crear varias cuentas, aun asi continua solicitando authenticator al entral al enlace de Create Client , ¿Sabras de alguna otra solución?
Alguien en 2023 a quien pueda usar la api?
Intentaré actualizarlo.
Genial! Esto de la autenticación por teléfono móvil no me gusta pero es lo que hay, ¿Qué pasaría si sobrepaso esas 100 peticiones por segundo?
Entiendo que te bloquearan por un tiempo para que no sobrecargues los sistemas
¡Muy interesante!, no conocía las APIs de Diablo III, a seguir con el curso...
¡A seguir, a seguir!
Genial, mi idea es hacer un proyecto pero con la API de Warcraft. Así práctico y aplico lo aprendido.
Cuando lo hagas,¡comparte el resultado!
X 2
Presento un problema, cuando en el movil le doy autorizar no pasa a la sigueiente pagina queda como s tuviera que ingresar la clave nuevamente. que sugerencia puedo seguir con el curso sin esta configuracion? Gracias de antemano
Necesitas autenticarte para poder continuar con el proyecto, ya que las APIs que usan son las oficiales del juego.
Alguien sabe com conseguir las apis de COD Warzone? xd
Fijate en la documentacion oficial del COD para ver si tienen algo, yo no lo se.
Saludos. No encuentro como obtener mi ClientId y ClientSecret. Alguien me puede indicar cómo hacerlo?
Me faltaba seguir los pasos de este link:
En la documentación está todo. Gracias por el link!
Jamás me funcionó la app, tenía 2 cuentas en blizzard, en ambas se queda cargando... Tenía un correo extra, me cree una cuenta como un comentario decía, y aún así me pidió el autentificador, que luego se queda de manera indefinida cargando...
Debes meter el celular para que funcione
Que desperdicio de curso si no se puede pasar de este paso
crea una cuenta nueva así no te piden autenticar con el celular, tuve el mismo problema
Debes meter el celular para que funcione
Bueno no pude configurar la cuenta, siempre me dice que añada un auntentificador le doy y me pide que se necesita un autentificador y asi infinitamente.
Si tienen problemas con la app de Authenticator donde se queda cargando con el mensaje "Setting Up". La solución que encontré entre los comentarios de la Play Store, fue asociar nuestro número telefónico a la cuenta.
Después de esto, la app de Authenticator funcionó correctamente como se describe en el curso.
Eres un genio! realmente me ha funcionado!
😊
Genial, todo bien hasta el momento el curso promete mucho, A Seguir aprendiendo 🔥
Go ahead!
¿Conocías las APIs de Diablo III?
No soy mucho de videojuegos. Pero me ha parecido muy interesante 😂
No, no soy de juegos pero quiero esto de los tokens es muy útil en la vida laboral
Hola buenas tardes al momento de crear el cliente de acceso al api (https://develop.battle.net/access/clients/create), yseguir las indicaciones no deja crear el cliente devolviendo mensaje de "An error occurred during invoking a method [registerClient] in AuthorizationService"
se que es algo propio de develop battle y no se si sea algo que ver con mi region soy de venezuela, pero si seria bueno, tener una llave api ya creada por default que podamos usar o no se si es que ya esta no esta disponible