Iniciar sesión con G + – ¿por qué el ámbito "plus.login" no funciona solo?

He pasado por docenas de respuestas sobre el tema, seguido la guía oficial de inicio rápido, y he hecho todo lo que podía pensar.

He configurado mi consola de desarrollador de google en todas sus partes, incluyendo la configuración de las claves SHA1 correctas de depuración para OAuth y el acceso público a la API (ni siquiera sé si es necesario).

Problema

Tengo problemas al configurar ámbitos para mi GoogleApiClient .

 googleClient = new GoogleApiClient.Builder(this) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .addApi(Plus.API) .addScope(...) .build(); 

Puedo iniciar sesión con diferentes combinaciones de ámbitos:

  .addScope(new Scope("https://www.googleapis.com/auth/plus.login")) .addScope(new Scope("https://www.googleapis.com/auth/plus.profile.emails.read")) //WORKS! OR: .addScope(Plus.SCOPE_PLUS_LOGIN) // == https://www.googleapis.com/auth/plus.login .addScope(Plus.SCOPE_PLUS_PROFILE) // == https://www.googleapis.com/auth/plus.me //WORKS! OR: .addScope(new Scope("https://www.googleapis.com/auth/plus.profile.emails.read")) //WORKS! OR: .addScope(Plus.SCOPE_PLUS_PROFILE) // == https://www.googleapis.com/auth/plus.me //WORKS! 

Todos funcionan bien y los veo reflejados en las solicitudes (es decir, si establezco login + emails.read , el diálogo pedirá realmente estos dos).

Sin embargo, solo necesito " https://www.googleapis.com/auth/plus.login ". Si acabo de establecer .addScope(new Scope("https://www.googleapis.com/auth/plus.login")) , o de forma equivalente, .addScope(Plus.SCOPE_PLUS_LOGIN) , me encuentro con el bien documentado Toast error:

Se produjo un error interno.

Así que este ámbito (el único que necesito) funciona en conjunto con otros (por ejemplo, plus.me), pero no solo. ¿Por qué es eso, y qué puedo hacer?

2 Solutions collect form web for “Iniciar sesión con G + – ¿por qué el ámbito "plus.login" no funciona solo?”

Usted puede substituir este código por el siguiente que trabajó para mí.

  mGoogleApiClient = new GoogleApiClient.Builder(this) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .addApi(Plus.API, Plus.PlusOptions.builder().build()) .addScope(Plus.SCOPE_PLUS_LOGIN).build(); 

MGoogleApiClient = new GoogleApiClient.Builder (this) .addConnectionCallbacks (this) .addOnConnectionFailedListener (this) .addApi (Plus.API, Plus.PlusOptions.builder (). Build ()) .addScope (Plus.SCOPE_PLUS_LOGIN) .build ();

Usar Plus.SCOPE_PLUS_LOGIN no es una buena idea ya que "Plus" está obsoleto.

  • ¿Por qué el método GoogleAuthUtil.getToken () genera dos tipos de tokens?
  • Obtenga los detalles de la persona en la nueva conexión de Google Play Services 8.3
  • 'Solicitud no registrada' mostrada en la pantalla de consentimiento de inicio de sesión de Google+
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.