Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

[SOLUCIONADO] Obtener Token ID con GooglePlayGameServices 0.9.50 y Unity2017

Iniciado por TiagoSan, Marzo 13, 2018, 04:48:00 PM

Tema anterior - Siguiente tema
[EDIT]
 
SOLUCIONADO: Primera Respuesta comparto como lo solucione.
 
Hola muy buenas colegas como estaís tanto tiempo! =D (estrañaba este foro la verdad)
 
bueh al lio
 
Hoy vuelvo no con un aporte si no con un problema al cual no le estoy encontrando solución, se trata de obtener el Token id posterior al login silencioso que nos brinda GPGS, por un lado el login va de perlas, se setea todo en la consola api de google, se linkea al juego , se agrega el Client id en el GPGS en unity , y Magia! se logea y todo presioso.....
 
ahora al momento de querer obtener los token, después de setear el builder() para que lo recupere, al intentar obtener el token devuelve una cadena vacia "", no un objeto nulo si no una cadena vacia...
 
he visto en el tracker issues en github que muchos andan con este problema, algunos comentarios dicen que haciendo downgrade a la version 0.9.38a esto funciona, el problema es que esta version no funciona en Unity 2017 :'( y poor otro lado tampoco me parece bien tener que hacer un downgrade de esa magnitud.....
 
Alguien ha lidiado con este problema? le ha encontrado solución? a tirado por otro lado? directamente GPGS ya esta obsoleto ?
 
Desde ya gracias por adelantado!

Vamos por partes Jack, que...


"Todo parece imposible hasta que se hace" (The_Code)


De lo único que se aprende es de los errores. 


 "Ley de Alzheimer de la programación: si lees un código que escribiste hace más de dos semanas es como si lo vieras por primera vez"
     -- Via Dan Hurvitz


-----



@SantiagoSilva87


 


 


 



Bueno despues de dos días de estar con esto probando de todo un poco les cuento que lo logre! =D
 
Por si otro tiene el problemas de obtener el token les dejo aquí como lo solucione.
 
Primero. tienen que ir al API Console, concretamente al proyecto asociado a vuestro GPS esto lo encuentran aquí
 
Pantalla principal de PlayStore Console clican en "Servicios de juego", luego en la app vuestra app

Al entrar estarán en Informacion del Juego, ahi mismo scrollean abajo y veran lo siguiente
 
En mi caso dice el nombre del mi juego, pero bueh ahí les aparecera vuestro nombre y eso los llevará a la consola api
 
ahí deberán de crear credenciales de acceso
 
una vez hagan clic en crear credencial seleccionamos OAuth
 

 
 
 
seleccionamos Web, ponemos el "Nombre" que más nos guste y el reso de campos los dejamos como están y le damos a crear
 

 
ya cuando le demos crear nos mostrara un cuadro con nuestro client-id (esto lo estoy creando ahorita para ilustrar así que no me preocupo por esconder los datos ;) )
 

 
Bien ese client id es el que ponemos en nuestro plugin en unity 
 

 
 
 
Todo lo anterior es lo normal, ahora el gran tip 
 
 
 
1 vamos a panel de control y buscamos el api que nos importa la de games! 
 

 
2 clicamos en prueba de api nos abrira una nueva pesataña/ventana
 

 
3 ACTIVAMOS EL PINCHE OAuth! o se le hacen un cariñoso click
 

 
4 en cuanto le hagan clic les saldra este popup, seleccionan la opcion marcada /auth/games y le dan a authorize
 

 
 
 
y LISTO!
 
compilen su juego, y hagan las pruebas
 
NOTAS:
 
si suben a beta, verifiquen que tienen permisos para tester de otro modo no funcionara, o sea agreguen sus mails, ya cuando este publica el app todo ira sobre ruedas.
 
 
 
Espero les sirva
 
Ahora con eso si podran en codigo obtener el token y con el token registrar el su backend de preferencia en lo personal Firebase =)
 
Aquí les pongo mi codigo de testeo, y como se configura el Builder() de PlayGamesClientConfiguration
 
 
 

   // Use this for initialization
void Awake () {
   PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder ()
      .RequestEmail ()
      .RequestIdToken ()
      //.RequestServerAuthCode (false)
      .Build ();
   PlayGamesPlatform.InitializeInstance (config);
   PlayGamesPlatform.DebugLogEnabled = true;
   PlayGamesPlatform.Activate ();
}
// Update is called once per frame
void Update () {
   
}
public void Login(){
   Social.localUser.Authenticate ((bool success) => {
      if(success){
         Debug.Log("----->>> LOGING SUCCESS!!!");
         string token = PlayGamesPlatform.Instance.GetIdToken();
         string servertoken = PlayGamesPlatform.Instance.GetServerAuthCode();
         statusLog.text = "TOKEN IS: "+token+"\n" +
            "TOKEN AUTH SERVER IS: " + servertoken+ "\n"+
            "USER MAIL"+ PlayGamesPlatform.Instance.GetUserEmail()+"\n"+
            "USER ID: "+PlayGamesPlatform.Instance.GetUserId()+"\n"+
            "USER NAME: "+ Social.localUser.userName ;
            ;               
         
         Debug.Log("----->>> /END LOGING SUCCESS!!!");
      }else{
         Debug.Log("----->>> LOGING FAIL MADAFAKA!!!!");
      }
   });
}

 
nada más enjoy! preguntas ? (mi cuenta de paypal para donar!? Pues hombre se agradece jajaja

Vamos por partes Jack, que...


"Todo parece imposible hasta que se hace" (The_Code)


De lo único que se aprende es de los errores. 


 "Ley de Alzheimer de la programación: si lees un código que escribiste hace más de dos semanas es como si lo vieras por primera vez"
     -- Via Dan Hurvitz


-----



@SantiagoSilva87


 


 


 



Buenas! Gracias por la solución! Por lo que recuerde Google Play Games Service se podía implementar de otra forma no? Es que la otra forma era más fácil aunque no es de extrañar que tenga fallos, casi siempre todas las actualizaciones que se suben para Unity vienen con bugs. 

si integrarlo es cuestión de descargar el sdk de github https://github.com/playgameservices/play-games-plugin-for-unity y bueno ahí mismo en el readme te muestra como agregar las tablas y los logros, pero el tema en si de este hilo es la obtención del token id del usuario, 
 
el token id, es como una clave enoooooooorme, que esta asociada a la cuenta del usuario y así puedes acceder a info del mismo, como por ejemplo el mail, la cuestión es que ese token id, también se necesita para hacer un "login limpio y silencioso" en tu propio backend base de datos, para evitar pedirle mail y contraseña, el usuario, sin más ingresa a tu juego, se logea automaticamente con Google Play Games, disopnes de todo lo de google play games, pero ademas lo conectas a tu db para guardar y cargar datos de su progreso, inventarios, etc, ademas si usas como yo firebase, aprovechas por ejemplo de las push notification y bueh todo lo que puedas encontrarle uso :)

Vamos por partes Jack, que...


"Todo parece imposible hasta que se hace" (The_Code)


De lo único que se aprende es de los errores. 


 "Ley de Alzheimer de la programación: si lees un código que escribiste hace más de dos semanas es como si lo vieras por primera vez"
     -- Via Dan Hurvitz


-----



@SantiagoSilva87


 


 


 



Cita de: TiagoSan date=1520986744si integrarlo es cuestión de descargar el sdk de github https://github.com/playgameservices/play-games-plugin-for-unity y bueno ahí mismo en el readme te muestra como agregar las tablas y los logros, pero el tema en si de este hilo es la obtención del token id del usuario, 
   
   
      el token id, es como una clave enoooooooorme, que esta asociada a la cuenta del usuario y así puedes acceder a info del mismo, como por ejemplo el mail, la cuestión es que ese token id, también se necesita para hacer un "login limpio y silencioso" en tu propio backend base de datos, para evitar pedirle mail y contraseña, el usuario, sin más ingresa a tu juego, se logea automaticamente con Google Play Games, disopnes de todo lo de google play games, pero ademas lo conectas a tu db para guardar y cargar datos de su progreso, inventarios, etc, ademas si usas como yo firebase, aprovechas por ejemplo de las push notification y bueh todo lo que puedas encontrarle uso :)
   


Pues muchas gracias también por explicarme lo de los token, nunca supe para que servían. Ahora que sé a lo mejor le echo un vistazo.

[UPDATE]
 
AGREGO DATA
 
Para poder linkear el login a Firebase (como es mi caso) 
 
necesitan actualizar los accesos en su consola de Firebase, en la sección de login - Metodo de inicio de sesion, primero esta claro que tienen que habilitar Google y allí ponen sus datos de Client ID y Secret Key
 
Imagen ilustrativa :)
 

Vamos por partes Jack, que...


"Todo parece imposible hasta que se hace" (The_Code)


De lo único que se aprende es de los errores. 


 "Ley de Alzheimer de la programación: si lees un código que escribiste hace más de dos semanas es como si lo vieras por primera vez"
     -- Via Dan Hurvitz


-----



@SantiagoSilva87


 


 


 



Etiquetas: