Os voy a enseñar a añadir el botón de Iniciar Sesión de Google para nuestras APPs o para utilizar otras APIS de Google qué requieran autenticación por parte del usuario.
Primero tenemos que añadir el proyecto en FireBase, puedes seguir este tutorial de aquí: Cómo añadir proyectos Android en Google Firebase para poder utilizar APIS, Google Analytics…
Después, una vez añadido el proyecto, tenemos qué ir al apartado de Authentication
Y pulsamos en comenzar
Ahora elegimos Proveedor Google
Lo habilitamos y pulsamos en guardar.
Una vez guardado pulsamos en editar.
Y copiamos el ID de cliente web dentro del apartado de Configuración del SDK web.
Este código tendremos que copiarlo dentro de nuestro proyecto Android, para ello creamos un nuevo String y lo añadimos.
<string name="id_log">fasdc3423423e23dqdw.apps.googleusercontent.com</string>
Una vez añadido, vamos a añadir el siguiente código en el lugar de nuestra APP que queramos iniciar sesión, en este caso voy a utilizar MainActivity y un botón XML.
Añadimos esto en activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:id="@+id/button" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="iniciarGoogle" android:text="Iniciar Sesion con Google" /> </LinearLayout> </RelativeLayout>
Y ahora dentro de MainActivity.java añadimos lo siguiente
public class GoogleFitActivity extends Activity { private static final int SIGN_IN_REQUEST_CODE = 1001; private GoogleSignInAccount googleSignInAccount; private final int RC_SIGN_IN = 13; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.google_fit); } //Accion del boton public void iniciarGoogle(View v) { iniciarSesionGoogle(); } private void iniciarSesionGoogle() { GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestIdToken(getString(R.string.id_log)) //Aquí añadimos el ID de Google Obtenido de FireBase .requestEmail() .build(); GoogleSignInClient mGoogleSignInClient = GoogleSignIn.getClient(getApplicationContext(), gso); Intent signInIntent = mGoogleSignInClient.getSignInIntent(); startActivityForResult(signInIntent, RC_SIGN_IN); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...); if (requestCode == RC_SIGN_IN) { try { Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data); googleSignInAccount = task.getResult(ApiException.class); //Aquí dentro ya podemos utilizar Google Sign para lo que queramos, si llega a este punto significa que el usuario ha entrado correctamente, //podemos registrarlo en nuestra Base de Datos, o utilizar un API de Google... } catch (Exception e) { Log.e("errr", "excepcion " + e.toString()); } } } }
Y listo, con este código podéis iniciar sesión con Google en vuestras APPs.
Ingeniero en Informática, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.