Mensaje INVALID_KEY que intenta autenticarse mediante el botón de inicio de sesión de Google+

Estoy tratando de autenticar al usuario siguiendo esta esencia por Ian Barber . El botón pide la cuenta de usuario, pero nunca llega a mostrar el diálogo de autorización y en su lugar sale con el mensaje "Un error interno ocurrido". Logcat muestra esto:

W/GLSUser ( 4353): Status from wire: INVALID_KEY status: null W/GLSUser ( 4353): Status from wire: INVALID_KEY status: null E/GLSUser ( 4353): Empty consent data I/GLSUser ( 4353): GLS error: INVALID_KEY [email protected] oauth2:https://www.googleapis.com/auth/plus.login W/GLSUser ( 4353): Status from wire: Unknown status: UNKNOWN 

El certificado utilizado para firmar mi aplicación es el mismo configurado en la página de la Consola de API de Google y el nombre del paquete también es el mismo.

Esto ocurre cuando el certificado se ha agregado en la sección "Acceso simple a API" en lugar de "ID de cliente para aplicaciones instaladas". En la consola de la API de Google de tu proyecto, haz clic en "Crear una ID de cliente OAUTH2" (NO "Crea una nueva clave para Android"), selecciona "Android" e introduce tu SHA1 y tu paquete.

Yo estaba recibiendo un error similar:

 772-799/com.google.process.gapps W/GLSUser﹕ GoogleAccountDataService.getToken() 05-21 13:23:50.231 772-799/com.google.process.gapps W/GLSActivity﹕ [art] Status from wire: INVALID_KEY status: null 05-21 13:23:50.231 772-799/com.google.process.gapps W/GLSActivity﹕ [art] Status from wire: INVALID_KEY status: null 05-21 13:23:50.235 772-799/com.google.process.gapps I/GLSUser﹕ GLS error: INVALID_KEY [email protected] oauth2:https://www.googleapis.com/auth/plus.login 05-21 13:23:50.235 772-799/com.google.process.gapps W/GLSActivity﹕ [art] Status from wire: Unknown status: UNKNOWN 

Lo arreglé firmando el APK usando un keystore que generé. El keystore SHA se agregó a nuestra consola de Google Developer.

Una razón más por la que se produce este error:

Si tiene un subpaquete, asegúrese de mencionar el paquete principal de la aplicación en la consola del desarrollador, no en el subpaquete.

Ej: si su aplicación está en com.example.myapp , si la actividad de inicio de sesión de G + se encuentra en el paquete com.example.myapp.authentication , en la consola del desarrollador, el nombre del paquete que escriba debe ser com.example.myapp (omitir el Subpaquete)

En mi caso este error ocurrió probablemente porque utilicé el algoritmo de sha256withrsa para firmar mi APK en vez de sha1withrsa. Probablemente – No sé con certeza como no voy a cambiar mis claves de firma sólo porque Google API es tonto.

  • MapFragment.getMap () devuelve null
  • <Your App> tiene problemas con los servicios de Google Play. Cuando usa GoogleApiClient, siempre activa onConnectionFailed
  • Google Analytics para Android: no vea Demographics and Interests report
  • Serializar a una matriz de bytes arrojó una IOException (nunca debería suceder)
  • Obtener un ID de usuario de Google Play Services?
  • Las insignias de funciones de Google Play Games no están visibles en Google Play
  • No se puede crear APK con 'com.google.android.gms: play-services: 9.4.0'
  • SetNeedBle de SettingsApi no funciona en API23
  • Registro de Google Plus: exceción de Google Play Services
  • Seguimiento de victorias y pérdidas en los servicios de juegos de Google Play
  • AdMob de Google Play Services realizará desplazamientos automáticos no deseados
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.