Jump to content
TiagoSan

[SOLUCIONADO] Obtener Token ID con GooglePlayGameServices 0.9.50 y Unity2017

Recommended Posts

[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!

Edited by TiagoSan
solucionado

Share this post


Link to post
Share on other sites

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 siguienteplayservices api.PNG

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 accesocrear credencial.PNG

una vez hagan clic en crear credencial seleccionamos OAuth

credencial oAuth.PNG

 

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

seleccionweb.PNG

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 ;) )

clienteauth.PNG

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

seteamos unity.png

 

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! 

1.PNG

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

2.PNG

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

3.PNG

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

4.PNG

 

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

Share this post


Link to post
Share on other sites

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. 

Share this post


Link to post
Share on other sites

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 :)

Share this post


Link to post
Share on other sites
hace 10 horas, TiagoSan said:

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 :)

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.

Share this post


Link to post
Share on other sites

[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 :)

link google with firebase.png

Share this post


Link to post
Share on other sites

UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...