Token null Iniciar sesión Cuenta de Google

Estoy siguiendo el ejemplo de google para obtener el token, pero sin éxito. Siempre falla al adquirir el token. Esta es la última manera que Google muestra en los desarrolladores de su página Creo que el error no está en mi código

private String CLIENTE_ID = "...apps.googleusercontent.com"; GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestIdToken(CLIENTE_ID) .requestEmail() .build(); // Build GoogleAPIClient with the Google Sign-In API and the above options. mGoogleApiClient = new GoogleApiClient.Builder(this) .enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */) .addApi(Auth.GOOGLE_SIGN_IN_API, gso) .build(); imgBGoogle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); startActivityForResult(signInIntent, 9002); } }); @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...); if (requestCode == 9002) { GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); handleSignInResult(result, data); } if (requestCode == 9002) { // [START get_id_token] GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); Log.d(TAG, "onActivityResult:GET_TOKEN:success:" + result.getStatus().isSuccess()); if (result.isSuccess()) { GoogleSignInAccount acct = result.getSignInAccount(); String idToken = acct.getIdToken(); // Show signed-in UI. Log.d(TAG, "idToken:" + idToken); Log.d(TAG, "\n "); // TODO(user): send token to server and validate server-side } else { // Show signed-out UI. Log.d(TAG, "idToken: fail"); } // [END get_id_token] } } private void handleSignInResult(GoogleSignInResult result, Intent data) { getToken1(data); getToken2(result); String BOOKS_API_SCOPE = "https://www.googleapis.com/auth/books"; String GPLUS_SCOPE = "https://www.googleapis.com/auth/plus.login"; String mScopes = "oauth2:" + BOOKS_API_SCOPE + " " + GPLUS_SCOPE; } void getToken1(Intent data){ GoogleSignInResult a = Auth.GoogleSignInApi.getSignInResultFromIntent(data); if (a.isSuccess()) { Log.d(TAG, "TOKEN 1: " + a.getSignInAccount().getIdToken()); Log.d(TAG, "DISPLAY NAME 1: " +a.getSignInAccount().getDisplayName()); Log.d(TAG, "ID 1: " + a.getSignInAccount().getId()+"\n "); }else{ Log.d(TAG, "ID 1: falhou"+"\n "); } } void getToken2(GoogleSignInResult result){ if (result.isSuccess()) { GoogleSignInAccount acct = result.getSignInAccount(); Log.d(TAG, "TOKEN 2: " + acct.getIdToken()); Log.d(TAG, "DISPLAY NAME 2: " + acct.getDisplayName()); Log.d(TAG, "ID 2: " + acct.getId()+"\n "); }else{ Log.d(TAG, "ID 2: falhou"+"\n "); } } 

¿Cómo puedo obtener el token? ¿Alguien puede ayudarme?

Introduzca aquí la descripción de la imagen

Introduzca aquí la descripción de la imagen

Introduzca aquí la descripción de la imagen

Introduzca aquí la descripción de la imagen

Acabo de tropezar con el problema similar, no estaba usando un cliente OAuth web, funcionó con la base de firebase y pensé que esta solución más simple podría ser útil para alguien.

 GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestIdToken(getString(R.string.default_web_client_id)) .requestEmail() .build(); 

No hay necesidad de definir default_web_client_id, funcionará como pegado. Es una cadena generada por google-services plugin.

Parece que su código está bien, pero trate de seguir la guía oficial exactamente. Funcionó para mí: http://android-developers.blogspot.com/2016/03/registering-oauth-clients-for-google.html

Asegúrese de usar el token web, trate de crear uno nuevo y utilícelo. Introduzca aquí la descripción de la imagen

  • ¿Cómo implementar la funcionalidad de búsqueda para Google Map Api V2 Android?
  • Android - Firebase Depurar certificado SHA1
  • La carga de Google Maps es demasiado lenta en la aplicación de Android
  • Integración de Outlook 365 en la aplicación android
  • Inicia sesión silenciosa para recuperar el token con GoogleApiClient
  • Android System WebView bloquea las aplicaciones de Android! "Las piedras sepulcrales están deshabilitadas en las compilaciones de usuarios de JB MR2 +"
  • Acceso a la API de Gmail mediante Android
  • Google Sheets API v4 - ¿Cómo insertar fila después de la última fila con valor?
  • Accidente dentro de GoogleSignInAccount en los últimos PlayServices 8.3
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.